为什么我得到一个"连接中止"尝试抓取特定网站时出错?

时间:2016-01-19 09:08:50

标签: python python-2.7 web-crawler python-requests

我在Python 2.7中编写了一个Web爬虫,但是虽然可以在浏览器中查看,但是无法下载特定的站点。

我的代码如下:

# -*- coding: utf-8 -*-

import requests

# OK
url = 'http://blog.ithome.com.tw/'
url = 'http://7club.ithome.com.tw/'
url = 'https://member.ithome.com.tw/'
url = 'http://ithome.com.tw/'
url = 'http://weekly.ithome.com.tw'

# NOT OK
url = 'http://download.ithome.com.tw'
url = 'http://apphome.ithome.com.tw/'
url = 'http://ithelp.ithome.com.tw/'

try:
    response = requests.get(url)
    print 'OK!'
    print 'response.status_code: %s' %(response.status_code)

except Exception, e:
    print 'NOT OK!'
    print 'Error: %s' %(e)
print 'DONE!'
print 'response.status_code: %s' %(response.status_code)

每次尝试我都会收到此错误:

C:\Python27\python.exe "E:/python crawler/test_ConnectionFailed.py"
NOT OK!
Error: ('Connection aborted.', BadStatusLine("''",))
DONE!
Traceback (most recent call last):
  File "E:/python crawler/test_ConnectionFailed.py", line 29, in <module>
    print 'response.status_code: %s' %(response.status_code)
NameError: name 'response' is not defined

Process finished with exit code 1

为什么会发生这种情况,我该如何解决?

解决了!我只是使用另一个代理软件,然后确定!

2 个答案:

答案 0 :(得分:1)

我发现使用urllib2库比请求更好。

import urllib2
def get_page(url):
  request = urllib2.Request(url)
  request = urllib2.urlopen(request)
  data = request.read()
  return data
url = "http://blog.ithome.com.tw/"
print get_page(url)
祝你有个美好的一天。

答案 1 :(得分:0)

无法为这些域解析连接,对网址执行正常的ping操作会产生此结果

命令运行:

ping http://download.ithome.com.tw

结果

The host could not be resolved

没有响应,因此在正常情况下没有状态行包含状态代码。