Как парсить html
страничку с JavaScript
в python 3
и что для этого нужно.
Чтобы достать статические данные из html, javascript текста, можно использовать соответствующие парсеры, такие как BeautifulSoup, slimit. Пример: Как, используя Beautuful Soup, искать по ключевому слову?
Чтобы получить информацию с web-странички, которая динамически генерируется, можно web-браузером воспользоваться. Чтобы управлять разными браузерами из Питона, можно selenium webdriver использовать, пример с показом GUI. Чтобы получить html страницу, не показывая GUI, можно «безголовый» (headless) Google Chrome запустить:
from selenium import webdriver # $ pip install selenium
options = webdriver.ChromeOptions()
options.add_argument('--headless')
# get chromedriver from
# https://sites.google.com/a/chromium.org/chromedriver/downloads
browser = webdriver.Chrome(chrome_options=options)
browser.get('https://ru.stackoverflow.com/q/749943')
# ... other actions
generated_html = browser.page_source
browser.quit()
Этот интерфейс позволяет автоматизировать действия пользователя (нажатие клавиш, кнопок, поиск элементов на странице по различным критериям, итд). Анализ полезно на две части разбить: загрузить из сети динамически генерируемую информацию с помощью браузера и сохранить её (возможно наличие избыточной информации), а затем детально анализировать уже статическое содержимое, чтобы изъять только необходимые части (возможно без сети в другом процессе с помощью того же BeautifulSoup). К примеру, чтобы найти ссылки на похожие вопросы на сохранённой странице:
from bs4 import BeautifulSoup
soup = BeautifulSoup(generated_html, 'html.parser')
h = soup.find(id='h-related')
related = [a['href'] for a in h.find_all('a', 'question-hyperlink')]
Если сайт предоставляет API (официальное или подсмотренное в сетевых запросах выполняемых javascript), то это может быть более предпочтительным вариантом по сравнению с выдёргиванием информации c UI элементов web-страницы, пример, использования Stack Exchange API.
Часто можно встретить REST API или GraphQL API, которые удобно с помощью requests или специализированных библиотек использовать (по ссылкам пример для github).
Браузер Safari почему-то не видит некоторые стили СSS и некторые JSДругие браузеры (Сhrome, FireFox, IE) отображают содержимое корректно
Доброго времени суток! Я могу найти текущий день и кинуть его в alert с информациейКак сделать чтобы всё это кинуть в тег???