python工资高还是java(网络爬虫python实例)
对于我们普通用户来说,爬虫是一个很好的工具,可以方便快捷地获取想要的信息。但是对于网站来说,网络爬虫占用的资源太多,不可能从这些爬虫那里获得点击量来增加广告收入。因此,许多网站讨厌爬虫,并采取了一系列反爬虫措施,其中最重要的是禁止频繁快速访问大量网页的ip。代理ip爬虫可以绕过这个限制。要使用代理ip,我们首先需要获取大量的代理ip并构建一个代理ip池。以python的scrapy框架为例,实现通过爬虫自动获取免费代理ip的功能。
首先,创建一个零碎的项目并运行命令:
$ scrapy start project GetProxy kuaidaili.com
$刺儿头kuaidaili.com
在百度搜索免费代理ip,我进入了快速代理,页面通过列表显示了代理ip和相关信息。
3.通过上面的界面,重写items.py,添加以下项目保存代理ip的相关信息。
4.通过观察页面源代码,我们发现我们需要的代理ip信息很容易通过xpath获得。
5.按照上图观察到的规则重写proxyKdlSpider.py文件,通过下面的xpath获取代理ip信息。
6.重写pipelines.py并将通过解析提取的代理ip信息保存到文件proxy.txt中
7.重写settings.py并添加以下行:
用户代理将覆盖请求头。因为快速代理网站会通过USER_AGENT判断访问者是否是爬虫,不这样设置会导致运行爬虫的ip被禁止。
设置DOWNLOAD_DELAY=5意味着爬虫每5s请求一个网页。这个设置的目的是为了避免因为快速访问大量网页而触发网站的反爬虫机制。
设置ITEM_PIPELINES告诉爬虫如何在过滤后保存需要的信息。
8运行编写好的爬虫:
$剪贴簿抓取代理蜘蛛
因为我们限制了采集速度,过程会有点长。操作完成后,采集结果如下:
虽然免费的代理ip已经收集,但其中一些是不可用的。关于如何过滤掉所有可用的代理ip,请参考我之前的文档:如何验证代理ip的有效性。