Как автоматизировать сбор данных на сайте c JavaScript
Python
Middle
Без компании
Как автоматизировать сбор данных на сайте c JavaScript
Ответы
Для автоматизации сбора данных с сайтов, использующих JavaScript, можно использовать библиотеки, которые эмулируют браузер и выполняют JS-код:
- **Selenium** - популярный инструмент для автоматизации браузеров:
```
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service('path/to/chromedriver')
driver = webdriver.Chrome(service=service)
driver.get('https://example.com')
data = driver.find_element('id', 'content').text
driver.quit()
```
- **Playwright** - современная альтернатива Selenium:
```
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto('https://example.com')
data = page.inner_text('#content')
browser.close()
```
- **Pyppeteer** - Python-обертка для Puppeteer:
```
import asyncio
from pyppeteer import launch
async def scrape():
browser = await launch()
page = await browser.newPage()
await page.goto('https://example.com')
data = await page.querySelectorEval('#content', 'el => el.textContent')
await browser.close()
return data
asyncio.get_event_loop().run_until_complete(scrape())
```
Для сложных случаев можно комбинировать с BeautifulSoup после получения HTML. Важно соблюдать правила robots.txt и не перегружать сервер запросами.