pathon知识
2019-04-15 本文已影响0人
65492352d496
进行大规模爬虫,通常都是从一个URL开始爬,然后把页面中解析的URL链接加入待爬的URL集合中,我们需要用到队列或者优先队列来区别对待有些网站优先爬,有些网站后面爬。每爬去个页面, 是使用深度优先还是广度优先算法爬取下一个链接。 每次发起网络请求的时候,会涉及到一个DNS的解析过程(将网址转换成IP)为了避免重复地DNS解析,我们需要把解析好的IP缓存下来。URL 那么多,如何判断哪些网址已经爬过,哪些没有爬过,简单点就是是使用字典结构来存储已经爬过的的URL,但是如果碰过海星的URL时,字典占用的内存空间非常大,此时你需要考虑使用Bloom Filter (布隆过滤器) ,用一个线程逐个地爬取数据,效率低得可怜,如果提高爬虫效率,是使用多线程,多进程还是协程,还是分布式操作。