Найти определение переменной Javascript с BeautifulSoup - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь найти конкретное c определение переменной внутри HTML (в теге) сайта. У меня есть следующий код:

logResponse = scrape.post(url, params=logindata, headers=UA)
soup = bs(logResponse.text, 'html.parser')
x = soup.find_all('var my_post_key')
print(x)

Я ищу переменную "my_post_key" ", но функция soup.find_all возвращает пустой список ([]). Я подозреваю, что я использую это неправильно, но мне интересно, как можно было бы сделать это правильно. Вот как переменная хранится в странице HTML:

<script type="xxxxxxxxxxxxxxxxx-text/javascript">
var my_post_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
</script>

Напомним, я просто пытаюсь получить значение "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx". Любая помощь приветствуется.

1 Ответ

1 голос
/ 30 апреля 2020
from bs4 import BeautifulSoup
import re


html = """
<script type="xxxxxxxxxxxxxxxxx-text/javascript">
var my_post_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
</script>
"""

soup = BeautifulSoup(html, 'html.parser')
target = soup.select_one("script").string


print(target.split('"')[1])

#Or

match = re.search(r'key = \"(.+?)\"', target).group(1)

print(match)

Выход:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
...