繁体   English   中英

Python机械化:HTTP错误428前提条件失败

[英]Python Mechanize: HTTP Error 428 Precondition Failed

我正在尝试使用python mechanize模块自动化网站上的流程。

使用以下代码,我将刷新该网站,直到找到要关注的链接:

            for link in br.links():            
               valuable = filter(lambda tpl: tpl[0]=='href', link.attrs)
               if len(valuable) == 0:
                   continue
               if 'book.php' in valuable[0][1]:
                   print link
                   req = br.follow_link(link)
                   file_handler = open("level2.html", "w")
                   file_handler.write(br.response().read())
                   file_handler.close()
                   not_done = False
                   break

一旦找到包含“ book.php”的链接,应用程序将崩溃,并且出现以下错误:

文件“ /home/max/Dokumente/dev/main.py”,第43行,运行要求= br.follow_link(link)

文件“ build / bdist.linux-x86_64 / egg / mechanize / _mechanize.py”,第569行,位于follow_link中

打开文件“ build / bdist.linux-x86_64 / egg / mechanize / _mechanize.py”,第203行

_mech_open中的第255行的文件“ build / bdist.linux-x86_64 / egg / mechanize / _mechanize.py”

mechanize._response.httperror_seek_wrapper:HTTP错误428:前提条件失败

这意味着什么? 我真的无法弄清楚。 如何解决此错误?

正如解释在这里

原始服务器要求请求是有条件的。 它的典型用法是避免“丢失更新”问题,在这种情况下,客户端获取资源的状态,然后对其进行修改,然后将其重新放置到服务器上,而此时第三方已在服务器上修改了状态,从而导致冲突。

这可能意味着已处理链接中的GET参数突然过时了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM