【问题标题】:Way around HTTP 403 with python使用 python 绕过 HTTP 403
【发布时间】:2013-04-18 22:20:57
【问题描述】:

我正在制作一个使用谷歌搜索的程序,但我不能因为 HTTP 错误 403 有什么办法可以解决它或者我使用 mechanize 浏览这里是我的代码

from mechanize import Browser

inp = raw_input("Enter Word: ")
Word = inp

SEARCH_PAGE = "https://www.google.com/"

browser = Browser()
browser.open( SEARCH_PAGE )
browser.select_form( nr=0 )

browser['q'] = Word
browser.submit()

这是错误信息

Traceback (most recent call last):
File "C:\Python27\Project\Auth2.py", line 16, in <module>
browser.submit()
File "C:\Python27\lib\site-packages\mechanize\_mechanize.py", line 541, in submit
return self.open(self.click(*args, **kwds))
File "C:\Python27\lib\site-packages\mechanize\_mechanize.py", line 203, in open
return self._mech_open(url, data, timeout=timeout)
File "C:\Python27\lib\site-packages\mechanize\_mechanize.py", line 255, in _mech_open
raise response
httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt

请帮忙,谢谢

【问题讨论】:

  • 如果你这样做太多次,你最终会被谷歌暂时禁止。以编程方式使用 Google 搜索是自定义搜索 API 提供的付费服务(每天 100 个免费查询用于开发)

标签: python http error-handling mechanize http-status-code-403


【解决方案1】:

您可以告诉 Mechanize 忽略 robots.txt 文件:

browser.set_handle_robots(False)

【讨论】:

【解决方案2】:

Mechanize 试图遵守网站上 /robots.txt 文件宣布的抓取限制。在这里,Google 不希望抓取工具为其搜索页面编制索引。

你可以忽略这个限制:

browser.set_handle_robots(False)

Web Crawler - Ignore Robots.txt file?中所述

另外,我建议改用Google's Custom Search API,它公开了一个适当的API,结果易于解析。

【讨论】:

    猜你喜欢
    • 2017-08-09
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 2011-12-08
    相关资源
    最近更新 更多