目前网络爬虫用的比较多的是用Python写的,有很多第三方包可以直接使用,而使用PHP的网络爬虫很少有现成的开发包,大多都是公司自己内部开发的,本文则主要介绍使用PHP如何开发网络爬虫,提供正则匹配dom标签的封装。
本文结构:
一、抓取需要登录网页
二、抓取不需要登录的网页
三、总结
本文适合有过PHP curl和正则开发经验的人群。
一、抓取需要登录网页
1、拿到cookie
需要登录后的网页通常利用curl模块发送cookie模拟请求,查看cookie的方式如下:
2、利用cookie获取网页内容
演示代码如下:
其中phpcharset函数是转换字符编码用,具体代码如下:
3、获取网页指定dom内容
此处需要用到正则匹配HTML标签,下面提供的函数支持指定HTML标签、指定ID属性和指导class属性匹配:
二、抓取不需要登录的网页
同上面的方法,只是抓取网络内容的时候不需要指导cookie值。
三、总结
1、如果想爬取整个网站的内容怎么操作?
利用上面的ihttp_get先获取首页内容,然后利用get_tag_content获取页面所有的a标签内容,然后递归即可。
2、get_tag_content之所以提供指定id熟悉和class熟悉,是为了方便查找特定的dom标签,可以更加快速的获取想要的内容入库。
3、不熟悉正则表达式的童鞋可以通过simple_html_dom来解析,不过耗用内存大。
4、如果抓取很多页面,建议通过swoole开启多线程来抓取。