phpspider一款优秀的PHP开发蜘蛛爬虫
编写PHP网络爬虫,需要具备以下技能:
爬虫采用PHP编写(推荐学习:PHP视频教程)
从网页中抽取数据需要用XPath ( XPath选择器教程 )
当然我们还可以使用CSS选择器 ( CSS选择器教程 )
很多情况下都会用到正则表达式 ( 正则表达式教程 )
Chrome的开发者工具是神器, 很多AJAX请求需要用它来分析
注意:本框架只能在命令行下运行,命令行、命令行、命令行,重要的事情说三遍 ^_^
本篇写的demo是爬取军事教育网站
<?php require_once __DIR__ . '/../autoloader.php'; use phpspider\core\phpspider; /* Do NOT delete this comment */ /* 不要删除这段注释 */ $configs = array( 'name' => '军事', // 给你的爬虫起一个名字 'log_show' => false, // 是否显示日志 'tasknum' => 1, // 开启多少个进程爬取 // 数据库配置 'db_config' => array( 'host' => '127.0.0.1', 'port' => 3306, 'user' => 'root', 'pass' => 'root', 'name' => 'collection', ), // 数据库表,表需要已存在,collection库,test表 'export' => array( 'type' => 'db', 'table' => 'test', ), // 爬取的域名列表 'domains' => array( 'war.163.com' ), // 抓取的起点 'scan_urls' => array( 'http://war.163.com' ), // 列表页实例,你要爬取的列表,也就是分页 'list_url_regexes' => array( "http://war.163.com" ), // 内容页实例,文章的内容页 // \d+ 指的是变量,就是可变的参数 'content_url_regexes' => array( "http://war.163.com/photoview/4T8E0001/\d+", ), // 失败重新爬取次数 'max_try' => 5, // 爬取规则配置 'fields' => array( array( 'name' => "title", // 数据库字段名 'selector' => "//div[@class='headline']/h1", // 规则,表示:headline类里的h1标签 'required' => true, // 如果为空,整条数据丢弃 ), array( 'name' => "content", 'selector' => "//div[@class='overview']/p", 'required' => true, ), array( 'name' => "img", 'selector' => "//img[@class='firstPreload']", 'required' => true, ), ), ); $spider = new phpspider($configs); $spider->start();
以上是php能做爬虫吗的详细内容。更多信息请关注PHP中文网其他相关文章!