设为首页 收藏本站
查看: 857|回复: 0

[经验分享] 关于php网络爬虫phpspider。

[复制链接]

尚未签到

发表于 2017-12-29 13:43:39 | 显示全部楼层 |阅读模式
  前几天,被老板拉去说要我去抓取大众点评某家店的数据,当然被我义正言辞的拒绝了,理由是我不会。。。但我的反抗并没有什么卵用,所以还是乖乖去查资料,因为我是从事php工作的,首先找的就是php的网络爬虫源码,在我的不懈努力下,终于找到phpspider,打开phpspider开发文档首页我就被震惊了,标题《我用爬虫一天时间“偷了”知乎一百万用户,只为证明PHP是世界上最好的语言 》,果然和我预料的一样,php就是世界上最好的语言。废话少说,下面开始学习使用。
  首先看的是提供的一个demo,代码如下:
  

$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();
  

  每项具体的信息,可以去 https://doc.phpspider.org/demo-start.html 查看,哪里比较详细,这里只说下我走的弯路,
  

domains是定义采集的域名,只在该域名下采集,  

content_url_regexes是采集的内容页,使用chrome查看网页源码,然后使用selector选择器定位,selector使用xpath格式定位参数,当然也可以用css来选择。  

list_url_regexes列表页,每个列表页抓取多条content_url_regexes的url循环采集。  还有一些其他参数没有列出来,例如:
  

  

'max_try' => 5,  'export' => array(
  'type' => 'db',
  'conf' => array(
  'host'  => 'localhost',
  'port'  => 3306,
  'user'  => 'root',
  'pass'  => 'root',
  'name'  => 'demo',
  ),
  'table' => '360ky',
  ),
  

  

max_try 同时工作的爬虫任务数。  

export采集数据存储,有两种格式,一种是写到数据库中,一种是直接生成.csv格式文件。  只要url规则写的对,就可以运行,不用管框架里面的封装。当然,此框架只能在php-cli命令行下运行,所以使用前要先配置环境变量,或者cd到php安装路径运行。
  最后成功采集到大众点评某点的一千多条数据。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-429346-1-1.html 上篇帖子: 从并发处理谈PHP进程间通信(二)System V IPC 下篇帖子: php实现留言板功能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表