欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

urllib2.URLError: urlopen error [Errno 111] Connection refused

发布时间:2025/3/12 编程问答 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 urllib2.URLError: urlopen error [Errno 111] Connection refused 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

记录个还没解决的问题。下面爬虫代码是可以执行的,但是在我的Ubuntu的虚拟中刚开始是可以运行的,但是,后来不知道改了什么东西,用urllib2写的爬虫和用scrapy 的爬虫代码都不能运行了!!。

import urllib2 import reclass Spider:def __init__(self):self.page = 1self.switch = Truedef loadPage(self):print 'loadPage'url = "http://www.neihan8.com/article/list_5_" + str(self.page) + ".html"headers = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}request = urllib2.Request(url, headers=headers)response = urllib2.urlopen(request)html = response.read()gbk_html = html.decode('gbk').encode('utf-8')pattern = re.compile('<div\sclass="f18 mb20">(.*?)</div>', re.S)content_list = pattern.findall(gbk_html)self.dealPage(content_list)def dealPage(self, content_list):for item in content_list:item = item.replace('<br />', '').replace('<p>', '').replace('</p>', '')self.writePage(item)def writePage(self, item):with open('duanzi.txt', 'a') as f:f.write(item)def startWork(self):while self.switch:self.loadPage()command = raw_input('please enter continue, q back')if command == 'q':self.switch = Falseself.page += 1print '3q use'if __name__ == '__main__':s = Spider()s.startWork()

 爬虫结果

在终端下的错误信息。

Traceback (most recent call last):File "01-neihan.py", line 44, in <module>s.startWork()File "01-neihan.py", line 34, in startWorkself.loadPage()File "01-neihan.py", line 15, in loadPageresponse = urllib2.urlopen(request)File "/usr/lib/python2.7/urllib2.py", line 154, in urlopenreturn opener.open(url, data, timeout)File "/usr/lib/python2.7/urllib2.py", line 429, in openresponse = self._open(req, data)File "/usr/lib/python2.7/urllib2.py", line 447, in _open'_open', req)File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chainresult = func(*args)File "/usr/lib/python2.7/urllib2.py", line 1228, in http_openreturn self.do_open(httplib.HTTPConnection, req)File "/usr/lib/python2.7/urllib2.py", line 1198, in do_openraise URLError(err) urllib2.URLError: <urlopen error [Errno 111] Connection refused>

出现这个问题之前是我想fangqiang, 所以设置了代理,后来把代理关了也不行。这问题目前还没解决,不知道是Ubuntu的环境问题,还是python的问题。

问题:定位出问题,确实是代理的问题了。

解决办法:

1、首先查看下 /etc/apt/apt.conf,发现里面里面有:

http_proxy="http://192.168.16.109:13128/"
https_proxy="https://192.168.16.109:13128/"

也许内容和我的不一样。然后删除这个文件,然后重启电脑,发现里面还没有解决。

2、查看一下:cat /etc/enviroment,发现有配置

http_proxy="http://192.168.16.109:13128/"
https_proxy="https://192.168.16.109:13128/"

把里面的配置文件删除了,(切记PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"这一行不要删除,不然Ubuntu开机就不能进入到桌面了)

3、然后重启电脑,执行代码,问题解决。

 

 

 

总结

以上是生活随笔为你收集整理的urllib2.URLError: urlopen error [Errno 111] Connection refused的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。