Почему я получаю pyppeteer.errors.PageError при использовании request_ html? - PullRequest
0 голосов
/ 10 марта 2020

Я собираю список похожих веб-страниц и иногда получаю сообщение об ошибке (см. В конце).

Код, который я использую:

from requests_html import HTMLSession    
import pyppdf.patch_pyppeteer

link = 'https://www.wildberries.ru/catalog/1588749/detail.aspx?targetUrl=BP'
# It's always a different link from the list, but here I simplified it.

session = HTMLSession()
resp = session.get(link)
resp.html.render()

Большинство страниц не вызывают ошибка, но некоторые редкие делают. Ошибка появляется либо на resp = session.get(link), либо на resp.html.render(). Вот оно:

Traceback (most recent call last):
  File "/Users/max/Dropbox/WORK/projects/wildberries_parser/parsers/catalog_parser_3.py", line 133, in <module>
    row = parse_item_page(link)
  File "/Users/max/Dropbox/WORK/projects/wildberries_parser/parsers/catalog_parser_3.py", line 36, in parse_item_page
    resp.html.render()
  File "/Users/max/opt/anaconda3/envs/wildberries_parser/lib/python3.6/site-packages/requests_html.py", line 598, in render
    content, result, page = self.session.loop.run_until_complete(self._async_render(url=self.url, script=script, sleep=sleep, wait=wait, content=self.html, reload=reload, scrolldown=scrolldown, timeout=timeout, keep_page=keep_page))
  File "/Users/max/opt/anaconda3/envs/wildberries_parser/lib/python3.6/asyncio/base_events.py", line 488, in run_until_complete
    return future.result()
  File "/Users/max/opt/anaconda3/envs/wildberries_parser/lib/python3.6/site-packages/requests_html.py", line 512, in _async_render
    await page.goto(url, options={'timeout': int(timeout * 1000)})
  File "/Users/max/opt/anaconda3/envs/wildberries_parser/lib/python3.6/site-packages/pyppeteer/page.py", line 856, in goto
    raise PageError(result)
pyppeteer.errors.PageError: net::ERR_NAME_NOT_RESOLVED at https://www.wildberries.ru/catalog/1588749/detail.aspx?targetUrl=BP

Я не могу этого понять и сам не понял этого. Можете ли вы сказать мне, что происходит?

1 Ответ

0 голосов
/ 30 апреля 2020

ERR_NAME_NOT_RESOLVED означает, что возникла проблема с разрешением IP-адреса из имени. Это может быть проблема с вашим компьютером, маршрутизатором или распознавателем DNS.

Возможно, вы захотите попробовать сменить поставщика DNS на Google (8.8.8.8 и 8.8.4.4).

...