
《我用爬虫一天时间“偷了”知乎一百万用户,只为证明PHP是世界上最好的语言》所使用的程序
phpspider是一个爬虫开发框架。使用本框架,你不用了解爬虫的堆叠技术实现,爬虫被网站屏蔽,有些网站需要登录或验证码识别才能爬取等问题。简单几行PHP代码,就可以创建自己的爬虫,利用框架封装的多进程Worker类库,代码更简洁,执行效率更高的速度转换。
demo目录下有一些特定网站的爬取规则,只要您安装了PHP环境,代码就可以在命令行下直接运行。对爬虫研究的开发者可以加QQ群一起讨论:147824717。
下面以糗事百科为例,来看一下我们的爬虫长什么样子:
$configs = array(
'name' => '糗事百科',
'domains' => array(
'qiushibaike.com',
'www.qiushibaike.com'
),
'scan_urls' => array(
'http://www.qiushibaike.com/'
),
'content_url_regexes' => array(
"http://www.qiushibaike.com/article/d+"
),
'list_url_regexes' => array(
"http://www.qiushibaike.com/8hr/page/d+?s=d+"
),
'fields' => array(
array(
// 抽取内容页的文章内容
'name' => "article_content",
'selector' => "//*[@id='single-next-link']",
'required' => true
),
array(
// 抽取内容页的文章作者
'name' => "article_author",
'selector' => "//div[contains(@class,'author')]//h2",
'required' => true
),
),
);
$spider = new phpspider($configs);
$spider->start();
爬虫的整体框架就是这样,首先定义了一个$ configs分散,里面设置了待爬网站的一些信息,然后通过调用$spider = new phpspider($configs);
和$spider->start();
来配置并启动爬虫。
运行结果:自己看哦 哈哈哈
编写PHP网络爬虫, 需要具备以下技能:
- 爬虫采用PHP编写
- 从网页中抽取数据需要用XPath( XPath选择器教程 )
- 当然我们还可以使用CSS选择器 ( CSS选择器教程 )
- 很多情况下都会用到正则表达式 ( 正则表达式教程 )
- Chrome的开发者工具是神器, 很多AJAX请求需要用它来分析
注意:本框架只能在命令行下运行,命令行、命令行、命令行,重要的事情说三遍 ^_
原文译文:https://github.com/owner888/phpspider