有没有办法判断使用Mechanize打开的页面是否没有返回“搜索结果”?

时间:2013-09-12 19:05:12

标签: python python-2.7 mechanize mechanize-python

我正在使用Mechanize登录网站并进行搜索。在提取出我想要的链接/信息之后,然后我反复地从当前页面移动到下一页面的下一页。我想知道的是,如果有一种简单的方法可以告诉 - 例如根据标题信息 - 如果有“找不到结果”或类似页面。如果是这样,我可以快速检查标题是否为“404”或无结果页面,然后返回。

我在文档中找不到它,从我能说的答案是否定的。谁能在这里说得更明确,那么,答案是否实际上没有?提前谢谢。

(现在我只是在.read()链接后为'无结果'做一个.find()。)

注意:

1)“好”页面的标题信息(带结果):

reply: 'HTTP/1.1 200 OK\r\n'
header: Server: nginx
header: Date: Thu, 12 Sep 2013 18:33:10 GMT
header: Content-Type: text/html; charset=utf-8
header: Transfer-Encoding: chunked
header: Connection: close
header: Vary: Accept-Encoding
header: Status: 200 OK
header: X-UA-Compatible: IE=Edge,chrome=1
header: Cache-Control: must-revalidate, private, max-age=0
header: X-Request-Id: b501064808b265fc6e478fa88e622710
header: X-Runtime: 0.478829
header: X-Rack-Cache: miss
header: Content-Encoding: gzip

2)来自“不良”(无结果页面)的标题信息

reply: 'HTTP/1.1 200 OK\r\n'
header: Server: nginx
header: Date: Thu, 12 Sep 2013 18:33:11 GMT
header: Content-Type: text/html; charset=utf-8
header: Transfer-Encoding: chunked
header: Connection: close
header: Vary: Accept-Encoding
header: Status: 200 OK
header: X-UA-Compatible: IE=Edge,chrome=1
header: Cache-Control: must-revalidate, private, max-age=0
header: X-Request-Id: 1ae89b2b25ba7983f8a48fa17f7a1798
header: X-Runtime: 0.127865
header: X-Rack-Cache: miss
header: Content-Encoding: gzip

1 个答案:

答案 0 :(得分:2)

响应标头由服务器生成,您可以添加自己的“无结果”参数并解析...否则您必须分析内容。

如果您开始使用标题,我在两者之间唯一能看到的是错误搜索返回的速度提高了4倍 - 也许您可以找到经过响应时间的移动平均值。