#python #pyppeteer
Вопрос:
Минимальный пример:
import asyncio
from pyppeteer import launch
from pyppeteer.network_manager import Request
from pyppeteer_stealth import stealth
browser = await launch()
page = await browser.newPage()
await stealth(page=page)
async def intercept_network_request(request: Request):
print(request.url)
await request.continue_()
await page.setRequestInterception(value=True)
page.on(event='request', f=lambda req: asyncio.ensure_future(intercept_network_request(req)))
response = await page.goto(url='https://google.com/')
выход:
request url: <https://www.google.com/>
---------------------------------------------------------------------------
TimeoutError Traceback (most recent call last)
<ipython-input-2-8ccaf6c1ef45> in <module>
----> 1 response = await page.goto(url='https://google.com')
2 # await page.screenshot({'path': 'example.png'})
~/Documents/jupyter/.venv/lib/python3.9/site-packages/pyppeteer/page.py in goto(self, url, options, **kwargs)
883 error = result[0].pop().exception() # type: ignore
884 if error:
--> 885 raise error
886
887 request = requests.get(mainFrame._navigationURL)
TimeoutError: Navigation Timeout Exceeded: 30000 ms exceeded.
Независимо от того, куда я иду, я не получаю ни одного загруженного запроса. Все работает без перехвата запросов. В чем может быть проблема?
Ответ №1:
Отключите скрытое уклонение агента пользователя:
await stealth(page, ['user_agent_override'])