问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

一段python爬虫的解析问题

发布网友 发布时间:2022-05-05 05:15

我来回答

2个回答

懂视网 时间:2022-05-10 22:24

这篇文章主要介绍了Python爬虫DNS解析缓存方法,结合具体实例形式分析了Python使用socket模块解析DNS缓存的相关操作技巧与注意事项,需要的朋友可以参考下

本文实例讲述了Python爬虫DNS解析缓存方法。分享给大家供大家参考,具体如下:

前言:

这是Python爬虫中DNS解析缓存模块中的核心代码,是去年的代码了,现在放出来 有兴趣的可以看一下。

一般一个域名的DNS解析时间在10~60毫秒之间,这看起来是微不足道,但是对于大型一点的爬虫而言这就不容忽视了。例如我们要爬新浪微博,同个域名下的请求有1千万(这已经不算多的了),那么耗时在10~60万秒之间,一天才86400秒。也就是说单DNS解析这一项就用了好几天时间,此时加上DNS解析缓存,效果就明显了。

下面直接放代码,说明在后面。

代码:

# encoding=utf-8
# ---------------------------------------
# 版本:0.1
# 日期:2016-04-26
# 作者:九茶<bone_ace@163.com>
# 开发环境:Win64 + Python 2.7
# ---------------------------------------
import socket
# from gevent import socket
_dnscache = {}
def _setDNSCache():
 """ DNS缓存 """
 def _getaddrinfo(*args, **kwargs):
 if args in _dnscache:
 # print str(args) + " in cache"
 return _dnscache[args]
 else:
 # print str(args) + " not in cache"
 _dnscache[args] = socket._getaddrinfo(*args, **kwargs)
 return _dnscache[args]
 if not hasattr(socket, '_getaddrinfo'):
 socket._getaddrinfo = socket.getaddrinfo
 socket.getaddrinfo = _getaddrinfo

说明:

其实也没什么难度,就是将socket里面的缓存保存下来,避免重复获取。
可以将上面的代码放在一个dns_cache.py文件里,爬虫框架里调用一下这个_setDNSCache()方法就行了。

需要说明一下的是,如果你使用了gevent协程,并且用上了monkey.patch_all(),要注意此时爬虫已经改用gevent里面的socket了,DNS解析缓存模块也应该要用gevent的socket才行。

热心网友 时间:2022-05-10 19:32

可以尝试先将html打印出来,看看和你复制的有什么不同,估计应该是编码之类的问题追问

print(html) 永远都是报一个错误:

这个html如果是在IDEL环境下是完好显示的,只要print就会报错,print是不是会对字符串进行一次编码的?

追答试一下转cp936吧,将data.decode('utf-8')改为data.decode('cp936')

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 求大佬分析一下下面python爬虫代码的策略,并讲一下策略是怎么体现的... 如何区分ow的两种发音 如何快速记忆音标 之前在南京交的社保,现在在无锡交的社保怎么办社保卡 隔离霜颜色怎么选? EXCEL表中COUNTIF函数如何对筛选后的部分计数 每种颜色的隔离霜的作用是哪些啊! 隔离霜有3种颜色分别修盖什么的?拜托了各位 谢谢 新买的手机屏幕怎么看是不是原装屏 2013年记账式附息一期国债,发行300亿,期限为一年期,一年期国债利率是7.1%,为什么一年期这么高利率。 OZHG欧冠发酵果蔬汁为什么用到鳕鱼胶原蛋白肽? 关于领导干部退休后被行政拘留7天退休待遇发生变化吗? 退休教师被治安拘留了影响退休工资 食用艾米尼奥深海鳕鱼胶原蛋白肽有什么好处?有副作用吗? 自收自支事业单位党员退休后被行政拘留5天会影响退休金吗? 退休教师被拘留后,又再次被拘留,会取消工资中的补贴吗 已经退休拿工资的人如果被拘留影不影响工资? 退休后酒驾是否能保住工资 出国打工到底选择哪个国家好 事业单位退休人员被行政拘留会影响养老金吗 求帮忙解释一下下面两段Python代码的基于scrapy的网络爬虫框架 西安邦联网络科技有限公司怎么样? 富豪的特质 石家庄金偌网络科技有限公司怎么样? 西安联通宽带人工客服电话 西安麦子网络科技有限公司怎么样? 中国十大富豪的具体名单 深圳心随网络科技有限公司怎么样? 富豪的介绍 西安电信现在提速了么? 有20m的宽带么? 有点话多少钱? 世界富豪的排行榜 世界十大富豪 石家庄歌韵网络科技有限公司怎么样? 陕西列牧网络科技有限公司怎么样? 古话通讯依托什么网络 石家庄聚轩网络科技有限公司怎么样? 石家庄宝跃网络科技有限公司怎么样? 世界富豪有哪些及其说明 东莞市易信网络科技有限公司怎么样? 河北爱淘网络科技有限公司怎么样?