编程语言
首页 > 编程语言> > Python urllib2.open连接被对等错误重置

Python urllib2.open连接被对等错误重置

作者:互联网

我正在尝试使用python抓取页面

问题是,我不断使对等方重置Errno54连接.

当我运行此代码时出现错误-

urllib2.urlopen("http://www.bkstr.com/webapp/wcs/stores/servlet/CourseMaterialsResultsView?catalogId=10001&categoryId=9604&storeId=10161&langId=-1&programId=562&termId=100020629&divisionDisplayName=Stanford&departmentDisplayName=ILAC&courseDisplayName=126&sectionDisplayName=01&demoKey=d&purpose=browse")

在此分页上的所有网址上都会发生这种情况,这是什么问题?

解决方法:

$> telnet www.bkstr.com 80
Trying 64.37.224.85...
Connected to www.bkstr.com.
Escape character is '^]'.
GET /webapp/wcs/stores/servlet/CourseMaterialsResultsView?catalogId=10001&categoryId=9604&storeId=10161&langId=-1&programId=562&termId=100020629&divisionDisplayName=Stanford&departmentDisplayName=ILAC&courseDisplayName=126&sectionDisplayName=01&demoKey=d&purpose=browse HTTP/1.0

Connection closed by foreign host.

从python或其他任何地方获取URL都不会有任何乐趣.如果它在您的浏览器中正常工作,则还必须进行其他操作,例如cookie或身份验证或类似的操作.或者,可能是服务器损坏了,或者他们更改了配置.

尝试在从未访问过该站点的浏览器中打开它进行检查.然后登录并重试.

编辑:毕竟是饼干:

import cookielib, urllib2

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
#Need to set a cookie
opener.open("http://www.bkstr.com/")
#Now open the page we want
data = opener.open("http://www.bkstr.com/webapp/wcs/stores/servlet/CourseMaterialsResultsView?catalogId=10001&categoryId=9604&storeId=10161&langId=-1&programId=562&termId=100020629&divisionDisplayName=Stanford&departmentDisplayName=ILAC&courseDisplayName=126&sectionDisplayName=01&demoKey=d&purpose=browse").read()

输出看起来不错,但是您必须检查它是否满足您的要求:)

标签:python,connection,reset,screen-scraping
来源: https://codeday.me/bug/20191011/1889463.html