廿柒- 客制化爬虫以及爬虫调参
1. 前文提要
前期用 Python
做了某些爬虫
,但是发现有几个问题:
- 爬的
内容
有很多未完全读取
网页内容的信息 - 前期只爬取
tag
为<p>
的信息,但其实很多内容在<div>
中,但直接爬<div>
会有很多垃圾信息 - 广告页面信息清理
前期文章:
廿陆- Python 爬虫 异步改为同步加多进程 以及 某著名社交网站爬虫设想
廿伍-爬虫接受JS渲染
2.关于客制化爬虫
2.1 信息内容捉取
例如天涯论坛,你会看到很多内容均存在在 div
中而不是在 p
中,但如果把所有 div
爬下来就会存在很多垃圾信息
,于是需要针对它进行定制化
。
所以这个时候,我们就需要爬下class
为 ir-content
以及 BBS-content
的内容。
2.2 爬取链接
链接方面,前期爬取的很多链接都是只要有 HTTP
开头的才捉取,导致很多内容确实,如以下这种是不保存的:
针对需客制化
的网站捉取时,只捉取站内
的链接,并不捉取外联
,例如知乎的网站就只捉取知乎站内
的链接,不捉取站外
的链接。
2.3 客制化配置
关于针对需客制化
网站的配置,如果无太多其他需求的话,如:
- 捉取网站用户的关注、粉丝等关系
- 捉取针对客户评论、被评论与正文内容分开
- 捉取用户活跃度
- 等等
如唔需上述信息只需简单的配置少量配置即可,以下是配置内容:
{ //微博'eURL':'https://weibo.com/', // 配置门户页面'tag':'.WB_text', //配置捉取内容配置'rURL':'weibo.com' //配置URL补完信息
},{ //微博'eURL':'https://bbs.tianya.cn/', // 配置门户页面,第一层搜索的页面'tag':'.bbs-content,.ir-content', //配置捉取内容配置,会捉取网页tag内参数为 class='bbs-content' 或 class='ir-content' 的'rURL':'bbs.tianya.cn' //配置URL补完信息,补完后如 '/1024' 链接会变成 'bbs.tianya.cn/1024'
},
2.4 关键代码
完整的代码在全球大型同性交友平台 SpyTheLinkForCustomization 上。
其中针对链接捉取为如下:
aFromWeb = soup.select('a')for eleA in aFromWeb:strSpyURL = eleA.get('href')if not strSpyURL is None and len(strSpyURL):if len(strSpyURL)>4:if strSpyURL[:4] != 'http':if strSpyURL[1] == '/':objAddPage.AddToDB('https:'+strSpyURL)elif strSpyURL[0] == '/':objAddPage.AddToDB('https://'+strInRURL+strSpyURL)elif strSpyURL[:4] == 'http':objAddPage.AddToDB(strSpyURL)
针对内容的捉取如下:
arrWebP = soup.select(strInTag)objAddPage.AddPContent(arrWebP)
3. Python 爬虫调参
因为我用了很多免费的代理
,所以发现爬出来的很多信息均为未读取
完成的信息。
所以我可能必须得调整
每次读取网页的时间
。
但是这样却会影响爬虫
的速度
现在基本15分钟只能爬4个网页。
我发现现在网络上的免费代理
要读取完一个网页基本是需要花30秒,其实优化只能缩短代理
等待 timeout
的时间,发现能读取的网页时延长读取时间
。
另外有一个可以解决的办法就是,偶尔不用代理进行链接。这样可以缩短等待时间。
4. 按关键字清晰爬取样本
捉取的很多网页
都是广告
这个问题,十分头痛。
于是我决定解决一下。
本来我打算是用智能一点的方法的,但我还是决定使用一些比较笨的方法,设定关键字
。
但我很懒惰。所以还是来日再做吧。
廿柒- 客制化爬虫以及爬虫调参相关推荐
- 客制化NVRAM的以太网地址
在使用SN Write写Ethernet MAC过程中出现了以下的错误: ERROR!! Ethernet Mac:MetaResult = SPMETA_DLL::META_LID_INVALID. ...
- 客制化键盘键位修改_干电池 支持5设备无线连接 - 高斯ALT71机械键盘拆解评测...
近一段时间,本人就感觉小型紧凑机械键盘键盘很火,这点我很意外,一直以来都是87键和104键的天下,怎么突然就很火热呢?我真的是LOW.小型紧凑型机械键盘种类很多,有60.61.64.66.67.68. ...
- 客制化键盘编程_指尖运动会,谁是打字冠军,双十一机械键盘推荐
机械键盘就只能玩游戏吗?当然不是,其实机械键盘出现还远远早于薄膜键盘,早期类似IBM.AST.HP.康柏一类的品牌机都是标配机械键盘的.早期的机械键盘确实有点笨重,尤其是白轴的机械键盘,让你毕生难忘. ...
- 客制化键盘编程_客制化键盘劝退指南
客制化键盘劝退指南 最近总感觉mac book pro的键盘不太好用,所以把家里用的杜伽K320拿到公司用了.这把键盘,樱桃的银轴,红轴的压力克数,更小的键程,用起来还是不错的. 如此一来,家里的台式 ...
- 客制化键盘键位修改_可以用很漂亮形容的一把键盘,差一步就完美
内置钢板是轴体固定需要也是机械键盘的标志,钢板除了可以带来极其稳定的固定效果也成就了机械键盘扎实的手感,同时是机械键盘分量感的主要来源,给人一种结实感,这是薄膜键帽所不具备的. ▲外置钢板在悬浮式结构 ...
- 客制化键盘编程_客制化键盘如何入坑?
首先,玩客制化键盘之前你得了解一些键盘相关的知识. 比如键盘的轴体大致分为:线性轴.段落轴.声音轴.线性轴主要是类红轴,静音轴两大类.段落轴主要是类茶轴,类hp轴两大类.声音轴就是类青轴和类box白轴 ...
- 客制化键盘键位修改_IQUNIX Slim87 RGB机械键盘评测
IQUNIX作为知名的金属数码周边的品牌,近两年在外设领域也颇下功夫,为粉丝带来了高度客制化的F60.F96两个系列,多款不同配色的键盘产品.凭借别出心裁的外观设计以及出色的做工,也赢得消费者与市场的 ...
- Magento教程 7:客制化网站
帮助你的Magento更上一层楼! 架站完成后,我们将分享一些Magento好用的功能.扩充套件.小技巧以及常见的问题. 开启多语言介面 在Magento中,你可以轻松的进行语言切换,只要使用Mage ...
- 客制化键盘编程_开学在即,国产机械键盘怎么选
早年机械键盘就是chh一类的晒物社区出现的高端货,得益于国内轴厂和成品厂家的努力,近年来机械键盘早已经不是王谢堂前燕,越来越多玩家可以轻轻松松选择自己喜欢的机械键盘. 开学在即,不少朋友都会选择升级装 ...
最新文章
- Ubuntu下安装Node.js
- javaweb:servlet
- Bitmap之位图采样和内存计算详解
- C++读取配置文件的写法
- koa-mysql(三)
- tomcat项目的ajax路径问题,Tomcat下ajax请求路径总结
- Java EE应用程序的单片到微服务重构
- html ng-app,为什么AngularJs写了2个及以上的ng-app=会导致页面渲染不成功
- 错过就找不到了 Java API文档 免费下载!!!
- Win-MASM64汇编语言-ADD/SUB/INC自增/DEC自减
- 3.3通过EmbeddedServletContainerCustomizer调用Tomcat
- velocity自定义函数_mysql建立自定义函数的问题
- 用html5绘制星空,用HTML5绘制的一个星空特效图
- RISC-V_GD32VF103-开发环境搭建和使用
- Centos7配置软RAID+LVM
- 揭秘3D游戏模型贴图师
- Python爬虫实战四之抓取淘宝MM照片
- reduceByKey一个巧妙的用法
- 入手佳能24-70mm f/2.8L
- gsap_使用GSAP的动画库为Bootstrap传送带制作动画
热门文章
- 【译言网】史上最优美最含蓄最富诗意最具文学性的编程语言:莎士比亚程序设计语言...
- 什么是Netbios(网络基本输入/输出系统)?
- TheBrain.Technologies.PersonalBrain.v5.0.2.6.Incl.Keygen-b0b1
- 关于FPGA中Speed Grade的说明
- 计算机培训荣誉证书模板,各种荣誉证书的英文翻译2014827.doc
- 社会底层是怎样炼成的(牛叔)
- 写在2012之前的话(回顾我的2011-,展望我的2012+)
- 我的世界服务器修改武器合成表,我的世界武器合成表大全 我的世界武器怎么合成...
- 基于PWM控制直流电机调速的设计
- POI(实现办公文档操作)