Получить рендеринг строк JavaScript с веб-сайта в Python
Я использую Python 3.6.6 для этого.
Я пытаюсь получить номер текущей версии pycharm с сайта pycharm ( https://www.jetbrains.com/pycharm/download/). Номер версии отображается довольно очевидно, но я не могу его получить, потому что не знаю, как правильно обрабатывать java-скрипт.
Я попытался разобрать его с помощью questions_html из:
<li>Version: <span data-code="PCP" data-release-version=""></span></li>
Эта часть должна выглядеть следующим образом после того, как java-скрипт выполнит свою работу:
<li>Version: <span data-code="PCP" data-release-version="">2018.1.4</span></li>
Кстати, мой неработающий скрипт:
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://www.jetbrains.com/pycharm/download/#section=windows')
r.html.render()
item = r.html.find('<span data-code="PCP" data-release-version=""></span>')
print(item)
Меня не волнует, остались ли какие-либо детали, я бы просто отфильтровал их с помощью RegEx. Тем не менее, единственное, что я получаю от этого:
[<Element 'span' data-code='PCP' data-release-version=''>]
1 ответ
Решение
Обновить:
Я нашел решение для себя. Кажется, что render() нуждается во сне. Также я использовал xpath вместо поиска.
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://www.jetbrains.com/pycharm/download/#section=windows')
r.html.render(sleep=0.1)
item = r.html.xpath('/html/body/div[1]/div[2]/div/div[2]/div[1]/div[2]/ul[1]/li[1]/span/text()')
print('------------------------------------------------')
print(item)
мой результат:
['2018.1.4']