python爬虫-什么时候选择selenium框架框架?爬取不同网站需要采用不同技术策略

不知不觉已经从事Python编程开发5年了,Python刚开始其实不是很起眼,但是随着大数据越来越活,现在Python也越来越火了,但是目前我主要从事的Python工作还是以数据挖掘、数据爬虫技术深度为主。

下面把这些年个人在编程爬虫代码时用过的一些爬虫框架和爬虫经验给大家分享:

不同的网站选择不通的技术策略和不同的框架组合。

    (1)selenium框架: 我把这个框架取了一个名字叫:“无法阻挡爬虫蜘蛛侠”,这个框架优点的个人觉得就是可以模拟浏览器,相当于您用程序调动浏览器让浏览器打开您需要爬取的网站。这个好处其实就是可以大量避免被封。因为我们在用Python的requets库发出网络情况时候,您必须先构造http请求头。但是有些网站反爬很严格,可以直接识别出来您当前的访问是否正常用户行为。所以如果在用request请求时被目标网站反爬识别,导致无法爬取的话,那么这个时候只有使用这个selenium框架就是最好技术选择方式。他可以做到的是只要您网站用浏览器可以正常访问,那么selenium就可以采集到网站数据,除非正常浏览器都不能访问了。

       selenium框架优点:反爬能力强,适合爬取哪种反爬很厉害的网站或者是那种需要点击提交的网站,我在做商标网数据爬取的时候,当时老板要求要爬取全部网站几千万商标数据,但是这个网站反爬很厉害,而且需要点击确定按钮,然后才能进入商标综合搜索页面,然后再根据注册号搜索进入列表页,然后从列表页点击进入商标详情页,然后再从详情页点击进入商标流程页。这一连串的需要的模拟动作,当时为了解决一天爬取上百万数据,刚开始我采用Python的request库+代理IP池技术架构,然后开启了多进程,但是遗憾是很快就被目标网站识别您的请求不是正常用户,因为您太快了,所以最后不得不改用selenium+多进程技术价格组合。

        selenium框架缺点:速度慢,适合每天爬取数据量要求不高的爬虫工作, 因为selenium框架是必须要打开浏览器,然后模拟点击网页,这个过程和您用手打开浏览器打开网址去访问网站一样的速度。这个速度是比较慢。如果您要采集的数据,每天也就1-2万条那么可以用这个selenium框架。因为比较稳定靠谱。

什么时候我们不能选择selenium框架?

     关于爬虫技术,下一篇继续给大家分享。