PHP爬虫

我居然能用爬虫抓数据了,继正则之后又迈过一道坎。

使用PHP Simple HTML DOM Parser这个库,然后自己对DOM选择器做一下二次封装,基本上可以应付一部分WordPress站点。

入门

引入PHP Simple HTML DOM Parser这个库,然后使用file_get_html()抓取目标网址后,就能像操作jQuery一样来抓取我们需要的东西了。

由于内网网络不通缘故,我使用爬虫的时候,给PHP配置了代理。正常网络环境, file_get_html($url) 即可,不需要后面两个参数。

整站爬取

根据WordPress的分页规则,判断是否有下一页。

注意整站抓取的时候,需要修改PHP最大执行时间,使其可以长时间执行。

缓存抓取结果

整站抓取的时候,由于时间很长,未避免中途脚本出错,导致的重新执行整个爬取流程,可以对每个URL的抓取结果,进行Cache。

为了我中途检查和后续处理方便,我直接把抓取结果保存成CSV格式,以爬虫的URL为单位。

结语

抓一个页面容易,但是整站抓取,很容易被反爬虫策略给挡在外面。一个好的爬虫,功夫都在策略的应对上面。

这次是以PHP-CLI的形式写的,中途出错只能重新执行(浏览器输入URL或者重新执行PHP-CLI),不稳定。

下次看看怎么改成以进程的形式执行,这样就不怕长时间执行出问题了。

WordPress爬虫配置及数据查看