Mechanicalsoup зависает с некоторыми сайтами - PullRequest
0 голосов
/ 23 января 2020

Я использую MechanicalSoup для пользовательской поисковой системы. Когда я пытаюсь открыть некоторые веб-сайты, MechanicalSoup зависает до нескольких часов и выдает исключение только после этой задержки. Иногда это работает, но на некоторых веб-сайтах оно всегда очень длинное, например:

import mechanicalsoup
browser = mechanicalsoup.StatefulBrowser()
browser.open('https://www.amd.com')
browser.open('https://www.airfrance.fr')

Как я могу использовать механическую привязку и не делать этого замораживания или как установить короткий тайм-аут (например, максимум 10 с) , чтобы избежать ожидания часов.

1 Ответ

1 голос
/ 23 января 2020

MechanicalSoup API - это тонкая оболочка для библиотеки запросов, которая принимает аргумент timeout в соответствующих вызовах функций (см. https://requests.readthedocs.io/en/master/user/quickstart/#timeouts).

Следовательно, вы можете установите 10-секундный тайм-аут в MechanicalSoup, добавив timeout=10, например:

import mechanicalsoup
browser = mechanicalsoup.StatefulBrowser()
browser.open('https://www.amd.com', timeout=10)
browser.open('https://www.airfrance.fr', timeout=10)
...