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

标签 python connection screen-scraping reset

我正在尝试使用 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 或身份验证或类似的东西。或者,服务器可能已损坏或他们更改了配置。

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

编辑:毕竟是 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 urllib2.open 连接由对等错误重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7377494/

相关文章:

python - 属性错误 : 'module' object has no attribute 'Command'

windows - 将端口 21 更改为 30 后,FileZilla FTP 服务器错误 "425 Can' t 打开数据连接

postgresql - 无法从底层数据库获取 JDBC、Vertx、Postgresql 连接

python - lxml:拆分属性?

PHP 与 Google 的抓取问题 "I' m 感觉很幸运”

python - Seaborn 多轴图将不同颜色分配给相同/共享类别色调

python - 为什么在分配 None 时会创建一个副本?

connection - Android Studio 0.8.6 Gradle项目刷新失败,连接重置

python - python 中的抓取显示 None 值

python - scala:具有可变长度参数的函数对象的特征?