Очистка JavaScript var из HTML с помощью Beautiful Soup в Python - PullRequest
0 голосов
/ 23 мая 2018

Я очищаю HTML-код веб-сайта после запроса «GET».По сути, я пытаюсь получить несколько токенов с сайта.Я использую Beautiful soup, потому что это то, что я обычно использую, но я не могу понять, как получить переменную javascript из html.Токены находятся в HTML следующим образом:

<script type="text/javascript">
var accessToken = "WaX2wWBb9fkp+qVQf6ECq9JcOZJnCL3Y/furfevohpk=";
var ivString = "d2c5708bbcc6b53c23af6d2cdab9f4ab";
var encryptedFpAccountId = "zk/5H7Iz0cNQPxPadMgvDw==";
var accessTokenCode = "0";
var nextPageName="signup-retail"

Мне нужно получить равные accessToken, ivString и encryptedFpAccountId.Как мне соскрести это?

1 Ответ

0 голосов
/ 23 мая 2018

Используйте Regex , чтобы получить необходимую переменную.

Демонстрация:

from bs4 import BeautifulSoup
import re
s = """<script type="text/javascript">
var accessToken = "WaX2wWBb9fkp+qVQf6ECq9JcOZJnCL3Y/furfevohpk=";
var ivString = "d2c5708bbcc6b53c23af6d2cdab9f4ab";
var encryptedFpAccountId = "zk/5H7Iz0cNQPxPadMgvDw==";
var accessTokenCode = "0";
var nextPageName="signup-retail
</script>"""

soup = BeautifulSoup(s, "html.parser")
script = soup.find("script")
accessToken = re.search('var accessToken = (?P<token>.*);', script.string)
if accessToken:
    print(accessToken.group('token'))
ivString = re.search('var ivString = (?P<ivString>.*);', script.string)
if ivString:
    print(ivString.group('ivString'))

encryptedFpAccountId = re.search('var encryptedFpAccountId = (?P<encryptedFpAccountId>.*);', script.string)
if encryptedFpAccountId:
    print(encryptedFpAccountId.group('encryptedFpAccountId'))

Выход:

"WaX2wWBb9fkp+qVQf6ECq9JcOZJnCL3Y/furfevohpk="
"d2c5708bbcc6b53c23af6d2cdab9f4ab"
"zk/5H7Iz0cNQPxPadMgvDw=="
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...