Die*_*ego 45 python screen-scraping mechanize beautifulsoup http-status-code-403
有办法解决以下问题吗?
httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt
Run Code Online (Sandbox Code Playgroud)
是唯一的方法来联系网站所有者(barnesandnoble.com)..我正在建立一个网站,将带来更多的销售,不知道为什么他们会拒绝在一定深度访问.
我在Python2.6上使用了mechanize和BeautifulSoup.
希望能够解决问题
Yud*_*ira 205
哦,你需要忽略robots.txt
br = mechanize.Browser()
br.set_handle_robots(False)
Run Code Online (Sandbox Code Playgroud)
Ale*_*lli 14
你可以尝试撒谎你的用户代理(例如,试图让你相信你是一个人而不是一个机器人),如果你想与Barnes&Noble陷入法律纠纷.为什么不与他们的业务开发部门取得联系并说服他们专门授权您?他们毫无疑问只是试图避免某些类型的机器人如价格比较引擎刮掉他们的网站,如果你能说服他们你不是一个,签订合同等,他们可能愿意做你的例外.
刚刚违反robots.txt中编码政策的"技术"解决方案是一种我从不推荐的高风险法律方法.顺便说一句,怎么没有自己的robots.txt读?
Vla*_*lav 11
发出正确请求的代码:
br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
resp = br.open(url)
print resp.info() # headers
print resp.read() # content
Run Code Online (Sandbox Code Playgroud)
Mechanize会自动跟随robots.txt,但是假设您有权限可以禁用它,或者您已经考虑过道德规范.
在浏览器中设置标记:
browser.set_handle_equiv(False)
Run Code Online (Sandbox Code Playgroud)
这会忽略robots.txt.
此外,请确保限制您的请求,这样您就不会对其网站施加太多负担.(注意,这也使他们不太可能发现并禁止你).
归档时间: |
|
查看次数: |
37194 次 |
最近记录: |