Hi.各位邮件我的朋友。

邮件我的朋友们。

你们问的问题绝大部分都能在网上获得相关资料,花点时间尝试即可解决。

其他合作或咨询请提供相关内容与预算参考。

博客与邮件意味着时间花费,我偶尔会看下这个博客,发给这个博客关联的邮箱的邮件会被转到另一个邮箱,我会在1,2周内看到邮件。

我目前仍旧做一些定制爬虫的事。下面的一段话或许对各位朋友有所帮助。

对于scrapy架构,抛开定制爬虫相关的一些技术细节(特定网站的防爬取突破,爬虫运行策略等)。scrapy的架构在不做大改的情况下,较适合最多不超过千万级(每天千万的请求量,千万级的解析量(要看具体解析内容,解析是计算密集型))每天的爬取。

大改的话-。-我倾向于重写。主要在请求调度(网络io密集,cpu消耗一般)以及解析调度(cpu密集)。然而即使重写的话,我依然会使用scrapy的内容解析部分(css and xpath selector)。

对于js模拟,目前有了一些新的技术。除手工模拟外,若使用phantomjs,webkit等模拟,关键在于异步化以及js模拟的调度(用模拟浏览器的方式访问页面,js属于cpu密集)。

对于ip限制。每天都要进行的爬取,追求稳定的,推荐使用按需付费的云主机,自建代理。对于偶尔的一次性爬取,可考虑taobao买代理,自己扫。自扫推荐用masscan先做端口扫描,再做代理可用性检测。

在解析不是瓶颈无需优化的情况下,几乎完全使用css选择,某些时候xpath,不要使用正则。这样将拥有最好的开发效率和维护成本。

当你的爬虫效率低的时候,确认是卡在CPU,网络IO还是磁盘IO上。

卡在CPU上时,profile一下确认瓶颈代码段,scrapy自带的item_loader里面用了很多动态特性,较卡cpu。另外如果计算资源实在不够,只能在开发代码上优化一下,写出效率更高css,xpath选择器(少用通用选择器,但这样会影响开发效率)。

卡网络io时-。-测试下是自己网络不佳还是对面服务器扛不住了。检查下dns。

卡磁盘io。看下数据库看下磁盘io-。-。



啊。大概就是这些了。















你可能感兴趣的:(Hi.各位邮件我的朋友。)