Питон
Парсинг бесконечно прокручиваемых веб-страниц с помощью Python — 2 разных подхода (JavaScript и клавиши)
Table Of Content
Парсинг веб-страниц с бесконечной прокруткой может быть увлекательным. В этой статье рассматриваются два метода для прокрутки динамического контента на веб-страницах, таких как Twitter. Обратите внимание, что приведенный ниже код не выполняет парсинг данных, так как он служит только для образовательных целей по обработке бесконечной прокрутки.
Если вы используете Google Colab, убедитесь, что вы сначала установили веб-драйвер selenium. Вот необходимая часть перед началом;
!pip install selenium
!apt-get update # для обновления Ubuntu для правильной работы apt install
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin
import sys
sys.path.insert(0,'/usr/lib/chromium-browser/chromedriver')
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
Метод 1 — JavaScript
from selenium import webdriver
import time
wd = webdriver.Chrome('chromedriver',chrome_options=chrome_options)
wd.get('https://twitter.com/elonmusk?lang=en')
time.sleep(3)
prev_height = wd.execute_script('return document.body.screollHeight')
while True:
wd.execute_script('window.scrollTo(0, document.body.scrollHeight);')
time.sleep(3)
new_height = wd.execute_script('return document.body.scrollHeight')
if new_height == prev_height:
break
prev_height == new_height
Метод 2 — Клавиши
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
wd = webdriver.Chrome('chromedriver',chrome_options=chrome_options)
wd.get('https://twitter.com/elonmusk?lang=en')
time.sleep(3)
element = wd.find_element_by_tag_name('body')
while True:
element.send_keys(Keys.PAGE_DOWN)
time.sleep(3)