加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【Python爬虫错误】ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现

(2017-11-16 10:09:33)
标签:

python

分类: python
原文:http://blog.csdn.net/illegalname/article/details/77164521

今天写爬虫爬取天天基金网站(http://fund.eastmoney.com/)时出现如下图所示的错误。

http://img.my.csdn.net/uploads/201708/14/1502703655_9076.png[WinError 10054] 远程主机强迫关闭了一个现" />


分析原因,是因为使用urlopen方法太过频繁,引起远程主机的怀疑,被网站认定为是攻击行为。导致urlopen()后,request.read()一直卡死在那里。最后抛出10054异常。


具体的解决方法如下:

 

1.  在request后面写入一个关闭的操作,

 

[python] view plain copy
  1. response.close()  

 

2.  设置socket默认的等待时间,在read超时后能自动往下继续跑

 

[python] view plain copy
  1. socket.setdefaulttimeout(t_default)  

 

3.  设置sleep()等待一段时间后继续下面的操作

 

[python] view plain copy
  1. time.sleep(t)  

 


下面是具体的代码

 

[python] view plain copy
  1. #coding=utf-8  
  2. import urllib.request  
  3. import urllib.error  
  4. from bs4 import BeautifulSoup  
  5. import time  
  6. import socket  
  7.   
  8. socket.setdefaulttimeout(20 设置socket层的超时时间为20秒  
  9. header {'User-Agent''Mozilla/5.0' 
  10. url []  
  11. print('输入需要查询的基金号,按Q结束\n' 
  12. while True 
  13.     input()  
  14.     if == 'Q' 
  15.         break  
  16.     elif n:  
  17.         'http://fund.eastmoney.com/{0}.html?spm-search'.format(n)  
  18.         url.append(t)  
  19.     else 
  20.         print('输入错误' 
  21.   
  22. for in url:  
  23.     request urllib.request.Request(i, headers=header)  
  24.     try 
  25.         response urllib.request.urlopen(request)  
  26.         soup BeautifulSoup(response, 'html.parser'        
  27.         title soup.find('div'attrs={'class''fundDetail-tit'})  
  28.         rate soup.find('span'attrs={'id''gz_gszzl'})  
  29.         print(title.text, rate.text)  
  30.         response.close()    注意关闭response  
  31.     except urllib.error.URLError as e:  
  32.         print(e.reason)  
  33.     time.sleep(1  自定义  


运行结果如下图所示:

http://img.my.csdn.net/uploads/201708/14/1502703750_7609.PNG[WinError 10054] 远程主机强迫关闭了一个现" />

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有