Существует ли библиотека, аналогичная requests и bs4, которая может обрабатывать веб-страницы с использованием JavaScript?

Можете поделиться некоторыми библиотеками на Python, которые поддерживают использование JavaScript, схожие с командами в requests, но без использования selenium?
  • 18 октября 2023 г. 17:38
Ответы на вопрос 4
Да, существуют библиотеки на Python, которые поддерживают обработку веб-страниц с использованием JavaScript без необходимости использования Selenium. Некоторые из них:

1. **Pyppeteer** (https://github.com/pyppeteer/pyppeteer): Это Python API для Puppeteer - Node.js библиотеки, которая предоставляет управление браузером Chrome (или другими браузерами на основе Chrome). Pyppeteer позволяет загружать и рендерить веб-страницы, а также выполнять JavaScript код на странице.

Пример использования Pyppeteer для получения содержимого веб-страницы:

```python
import asyncio
from pyppeteer import launch

async def get_page_content(url):
    browser = await launch()
    page = await browser.newPage()
    await page.goto(url)
    content = await page.content()
    await browser.close()
    return content

page_content = asyncio.get_event_loop().run_until_complete(get_page_content('https://example.com'))
print(page_content)
```

2. **Splash** (https://github.com/scrapinghub/splash): Это сценарий для браузерного рендеринга, который предоставляет HTTP API для обработки веб-страниц с использованием JavaScript. Splash написан на языке Lua и работает как отдельный сервер.

Пример использования Splash с помощью библиотеки `requests`:

```python
import requests

url = 'http://localhost:8050/render.html'
params = {
    'url': 'https://example.com',
    'wait': 0.5
}
response = requests.get(url, params=params)

page_content = response.text
print(page_content)
```

3. **Pyppu** (https://github.com/sensepipe/pyppu): Это библиотека, основанная на Pyppeteer, которая предоставляет простой API для загрузки и обработки веб-страниц с использованием JavaScript.

Пример использования Pyppu для получения содержимого веб-страницы:

```python
from pyppu import PyppuBrowser

with PyppuBrowser() as browser:
    page = browser.newPage()
    page.goto('https://example.com')
    content = page.content()
    print(content)
```

Эти библиотеки позволяют обрабатывать веб-страницы с использованием JavaScript на Python. Они предоставляют функционал, схожий с командами в requests и предлагают дополнительные возможности, связанные с обработкой JavaScript на странице.
requests 
 отправляет HTTP-запросы.
selenium или playwright 
 позволяют выполнять парсинг и выполнение JavaScript в программно-управляемом браузере.
При переходе на использование selenium или playwright придется переписать уже написанный код.
Похожие вопросы