首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MechanicalSoup StatefulBrowser:无法打开URL

MechanicalSoup StatefulBrowser:无法打开URL
EN

Stack Overflow用户
提问于 2019-07-09 02:53:58
回答 1查看 756关注 0票数 0

我有一个使用MechanicalSoup StatefulBrowser打开以前工作的StatefulBrowser的Python脚本。但它最近停止了工作,打开了一个特定的网站,我没有改变任何代码。

我试着打开其他网站,没问题。这是无法打开的特定网站:http://a810-bisweb.nyc.gov/bisweb/ComplaintsByAddressServlet?allbin=4606689

代码语言:javascript
复制
import mechanicalsoup

browser = mechanicalsoup.StatefulBrowser()

# open url test
url = "http://www.cnn.com"
print("opening website: {}".format(url))
browser.open(url)
print("done website: {}".format(url))

url = "http://a810-bisweb.nyc.gov/bisweb/ComplaintsByAddressServlet?allbin=4606689"
print("opening website: {}".format(url))
browser.open(url)
print("done website: {}".format(url))

下面是我从www.cnn.com获得的输出,它按预期打开。但第二个链接刚刚挂起。

有什么帮助吗?或者如果有人知道联系MechanicalSoup开发人员的方法,请告诉我。

输出:

代码语言:javascript
复制
opening website: http://www.cnn.com
done website: http://www.cnn.com
opening website: http://a810-bisweb.nyc.gov/bisweb/ComplaintsByAddressServlet?allbin=4606689
... hangs ...

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-09 03:23:34

许多门户如果有错误的标题“用户代理”,就会阻塞连接,从而通知服务器使用什么web浏览器进行连接。

Python的工具(如requests)通常在User-Agent中使用word Python,这样服务器就可以识别它不是真正的web浏览器和阻塞连接。

如果我使用文本"Mozilla/5.0"作为User-Agent,那么我可以再次连接

代码语言:javascript
复制
browser = mechanicalsoup.StatefulBrowser()
browser.set_user_agent('Mozilla/5.0')

文本"Mozilla/5.0"不是阅读网页浏览器使用的全文,所以你可以找到更好的文本。或者它应该是python的模块,它包含来自不同web浏览器的用户代理,这样您就可以在不同的日子里使用不同的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56944716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档