python - 有没有办法判断用 Mechanize 打开的页面是否没有返回 "search results"?

标签 python python-2.7 mechanize mechanize-python

我正在使用 Mechanize 登录网站并进行搜索。提取我想要的链接/信息后,我递归地从当前页面移动到下一页。我想知道是否有一种简单的方法来判断——例如,基于标题信息——是否有“未找到结果”或类似的页面。如果是这样,我可以快速检查“404”或无结果页面的标题,然后返回。

我在文档中找不到它,据我所知,答案是否定的。这里的任何人都可以更明确地说,tho,答案是否实际上是否定的?提前致谢。

(目前,在我 .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

最佳答案

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

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

关于python - 有没有办法判断用 Mechanize 打开的页面是否没有返回 "search results"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18772386/

相关文章:

ruby catch连接超时错误

python - 从 Django 查询集中获取 Django 值,其中列名是一个变量

python - 带有 TimeSeriesGenerator 的 Keras LSTM 自定义数据生成器

python - 如何将列表转换为字符串并将此字符串转换回初始列表?

python - 我怎样才能避免这个 "variable referenced before assignment"?

python - 如何计算 np 数组中出现了多少个数组?

python - 使用 Nuitka 编译的脚本引发段错误

ruby - Mechanize 找不到合适的字段

Python OOP - 网络 session

Ruby 转换日期