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

Python urllib2.open连接因对等错误而重置,python,connection,screen-scraping,reset,Python,Connection,Screen Scraping,Reset,我正在尝试使用python刮取一个页面 问题是,我不断被对等方重置错误54连接 运行此代码时会出现错误- urllib2.urlopen("http://www.bkstr.com/webapp/wcs/stores/servlet/CourseMaterialsResultsView?catalogId=10001&categoryId=9604&storeId=10161&langId=-1&programId=562&termId=100020629

我正在尝试使用python刮取一个页面

问题是,我不断被对等方重置错误54连接

运行此代码时会出现错误-

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")
这个页面上的所有URL都会发生这种情况-问题是什么

$> 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都不会有任何乐趣。如果它在你的浏览器中工作,那么肯定还有其他事情在进行,比如cookies或身份验证之类的。或者,可能是服务器坏了,或者他们更改了配置

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

编辑:毕竟是cookies:

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()

输出看起来正常,但您必须检查它是否符合您的要求:

我最近遇到了类似的错误。连接正在断开并被重置。我尝试了cookiejars、扩展延迟和不同的头/用户代理,但没有任何效果。最后,解决办法很简单。我从urllib2转到请求。老年人

import urllib2
opener = urllib2.build_opener()
buf = opener.open(url).read()
新的

import requests
buf = requests.get(url).text

之后,一切都很顺利。

您能打开浏览器上的链接吗?如果不是,那么期望Python命令打开它是不正确的。你想在网站上找到什么?我会看看是否有其他方法可以帮助你。由于某些原因,我无法通过safariwell访问该页面。我正在尝试获取每个班级的班级名称和课本-搜索斯坦福书店,然后转到课本和课程资料,我想在他们的下拉列表中找到斯坦福大学下列出的所有课程的信息-上面的内容不太清楚-用我发布的代码,我试图在粘贴的urlwait页面上找到带有作者的课程名和教科书名-那么问题出在哪里?