我在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
为什么会发生这种情况,我该如何解决?
解决了!我只是使用另一个代理软件,然后确定!
答案 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
没有响应,因此在正常情况下没有状态行包含状态代码。