По поводу ошибок - см. комментарии, оставленные к ответу Roman, выше. Эти куски кода я взял из скрипта, где уже объединены несколько отдельных одинаковых парсеров для граба нескольких форумов с тем же движком используя ООП. Но даже до него, без ООП, в отдельном скрипте такие ошибки были и пришлось прибегнуть к try exept и while. А про tasks не слышал, а что он мне даст и где и как его прописать заместо while?
А как избавится от global переменных? Если убираю global pars, ругается на строки с pars. в начале. Убираю pars у них, ругается уже на doc. убираю его - ругается уже на select. А если и его убрать то строки станут не рабочими...
Roman, у меня ошибка возникает именно в этих кусках кода, которые я скинул. То есть, он делает запрос, например на переход к последним сообщениям (2-ой кусок кода) и такую ошибку выдает:
File "D:\Python\lib\site-packages\grab\base.py", line 368, in go
return self.request(url=url, **kwargs)
File "D:\Python\lib\site-packages\grab\base.py", line 437, in request
self.transport.request()
File "D:\Python\lib\site-packages\grab\transport\curl.py", line 447, in request
raise error.GrabTimeoutError(ex.args[0], ex.args[1])
GrabTimeoutError: [Errno 28] Operation timed out after 15000 milliseconds with 0 bytes received
Или такую DataNotFound: Could not get first item for .//*[@name="message"] query of class XpathSelector
Или вот такую DataNotFound: Could not get first item for .//*[@name="signature"] query of class XpathSelector
Но суть в чем - скрипт работает несколько циклов без ошибок, а потом случайно появляется какая-нибудь из ошибок. То есть проблема не в скрипте, а в сетевом соединении, когда пакеты не доходят, или нет доступа к форуму, то весь скрипт падает.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.