PHP在做爬虫时的解决方案

全国白癜风医学高峰论坛 https://jbk.39.net/yiyuanfengcai/tsyl_bjzkbdfyy/234/

爬虫不是一个小众的场景,所以无论是哪个语言,都有很多相应的生态库.这里介绍一下PHP的技术方案和代码量.

对页面的解析能力

PHP的官方扩展中有Dom扩展,但是我建议使用electrolinux/phpquery这个库,他相当于一个PHP版的JQ.

算上加载文件,只要三行就能获取title标签内容.

对数据库的操作能力

PHP对数据库的操作能力不是吹的,原生扩展中支持PDO,这里可以尝试ThinkPHP的think-orm.

简简单单一学就会.

爬虫效率

PHP对于性能的优化有很多很深的解决方案,包括使用协程等,这里只介绍最简单的的一种方式,使用guzzle这个库(他使用curl的并行加载特性).

代码量

如上面例子所示,代码量并不多,去掉配置文件,只有十几行代码,最关键的是我们需要的特性并没有削弱.

比如:

极简的DOM解析

健壮的SQL操作

发起并行请求

解析JS

有时候我们要抓取的页面是依赖JS执行的,这是需要一个无头浏览器,此时介绍这样一个库,他能够很简单的完成对phantomjs的操作.

PHPPhantomJS是一个灵活的PHP库,让PHP通过很简单的代码来操作PhantomJS无头浏览器加载页面。让PHP加载的网页地址执行JS/页面截图/导出PDF.

他可以非常方便地实现这些功能:

使用无头浏览器PhantomJS加载请求

查看详细的响应数据,包括页面内容、标题、状态代码等

处理重定向

查看JS控制台输出报错

查看详细的PhantomJS调试信息

保存页面的截图

将页面导出为PDF

设置浏览窗口大小

为PDF导出设置页眉页脚

指定截图位置x,y和宽高

延迟页面渲染(等待页面加载完成)

轻松构建和运行PhantomJS脚本

PHPPhantomJS只要求PHP5.4.0或以上即可。

基本用法

使用phantomjs发起一个请求非常简单:

使用PHP总是更舒服,更简单.




转载请注明:http://www.aierlanlan.com/rzgz/2362.html

  • 上一篇文章:
  •   
  • 下一篇文章: