php爬虫框架选用什么
php爬虫框架选用什么
一、总结
一句话总结:phpspider:官方下载地址:https://github.com/owner888/phpspider
1、phpspider能够帮我们解决哪些问题?
- 如何进行运行前测试?
- 如何实现模拟登录?
- 如何实现增量采集?
- 如果内容页有分页,该如何爬取到完整数据?
- 如何实现多任务爬虫?
- 如何实现多服务器集群爬虫?
- file_get_contents 设置代理抓取页面
- 如何提前生成列表页URL再提取内容?
- 如何去掉网页中的广告?
- 如何爬取列表页中的数据?
- 开发PHPSpider爬虫的常用工具
二、phpspider 简单使用
phpspider一款优秀的PHP开发蜘蛛爬虫
官方下载地址:https://github.com/owner888/phpspider
官方开发手册:https://doc.phpspider.org/
关于这个爬虫的使用 下载下来之后有写好的实例 我在这里只是说一下我遇到的一个坑
// GitHub下载方式
require_once __DIR__ . '/../autoloader.php';
use phpspider\core\phpspider;
/* Do NOT delete this comment */
/* 不要删除这段注释 */
$configs = array(
'name' => '糗事百科',
'log_show' => true,
'tasknum' => 1,
//'save_running_state' => true,
'domains' => array(
'qiushibaike.com',
'www.qiushibaike.com'
),
'scan_urls' => array(
'http://www.qiushibaike.com/'
),
'list_url_regexes' => array(
"http://www.qiushibaike.com/8hr/page/\d+\?s=\d+"
),
'content_url_regexes' => array(
"http://www.qiushibaike.com/article/\d+",
),
'max_try' => 5,
//'proxies' => array(
//'http://H784U84R444YABQD:57A8B0B743F9B4D2@proxy.abuyun.com:9010'
//),
'export' => array(
'type' => 'csv',
'file' => '../data/qiushibaike.csv',
),
//'export' => array(
//'type' => 'sql',
//'file' => '../data/qiushibaike.sql',
//'table' => 'content',
//),
// 'export' => array(
// 'type' => 'db',
// 'table' => 'content',
// ),
'db_config' => array(
'host' => '127.0.0.1',
'port' => 3306,
'user' => 'root',
'pass' => '123456',
'name' => 'spider',
),
//'queue_config' => array(
//'host' => '127.0.0.1',
//'port' => 6379,
//'pass' => '',
//'db' => 5,
//'prefix' => 'phpspider',
//'timeout' => 30,
//),
'fields' => array(
array(
'name' => "article_title",
'selector' => "//*[@id='single-next-link']//div[contains(@class,'content')]/text()[1]",
'required' => true,
),
array(
'name' => "article_author",
'selector' => "//div[contains(@class,'author')]//h2",
'required' => true,
),
array(
'name' => "article_headimg",
'selector' => "//div[contains(@class,'author')]//a[1]",
'required' => true,
),
array(
'name' => "article_content",
'selector' => "//*[@id='single-next-link']//div[contains(@class,'content')]",
'required' => true,
),
array(
'name' => "article_publish_time",
'selector' => "//div[contains(@class,'author')]//h2",
'required' => true,
),
array(
'name' => "url",
'selector' => "//div[contains(@class,'author')]//h2", // 这里随便设置,on_extract_field回调里面会替换
'required' => true,
),
),
);
$spider = new phpspider($configs);
$spider->start();
这是官网文档其中的一个实例 使用说明中描述只能通过命令行的模式运行爬虫文件
结果我运行了一下demo并没有成功
之后发现糗事百科已经换成https协议 但是代码中的路由还是http的
我抱着试试的想法改成 https
果然成功了 爬虫已经可以正常运行了
具体的一下参数详情还是得看官网的文档
参考:phpspider 简单使用 - CSDN博客
https://blog.csdn.net/qq_33278933/article/details/79153640
三、phpspider的github情况

php爬虫框架选用什么的更多相关文章
- 爬虫框架Scrapy初步使用
本文转载自: Scrapy 爬取并分析酷安 6000 款 App,找到良心佳软(抓取篇) https://www.makcyun.top/web_scraping_withpython10.html ...
- 爬虫框架--webmagic
官方有详细的使用文档:http://webmagic.io/docs/zh/ 简介:这只是个java爬虫框架,具体使用需要个人去定制,没有图片验证,不能获取js渲染的网页,但简单易用,可以通过xpat ...
- 教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神
本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http://www.xiaohuar.com/,让你体验爬取校花的成就感. Scr ...
- Python之Scrapy爬虫框架安装及简单使用
题记:早已听闻python爬虫框架的大名.近些天学习了下其中的Scrapy爬虫框架,将自己理解的跟大家分享.有表述不当之处,望大神们斧正. 一.初窥Scrapy Scrapy是一个为了爬取网站数据,提 ...
- [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计
[DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 为什么要造轮子 同学们可以去各大招聘网站查看一下爬虫工程师的要求,大多是招JA ...
- 使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)
初学Scrapy,实现爬取网络图片并保存本地功能 一.先看最终效果 保存在F:\pics文件夹下 二.安装scrapy 1.python的安装就不说了,我用的python2.7,执行命令pip ins ...
- 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神
原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...
- 再次分享 pyspider 爬虫框架 - V2EX
再次分享 pyspider 爬虫框架 - V2EX block
- 爬虫框架YayCrawler
爬虫框架YayCrawler 各位好!从今天起,我将用几个篇幅的文字向大家介绍一下我的一个开源作品——YayCrawler,其在GitHub上的网址是:https://github.com/liush ...
随机推荐
- FFMPEG推流到RTMP服务器命令 - weixin_37897683的博客 - CSDN博客 https://blog.csdn.net/weixin_37897683/article/details/81225228
FFMPEG推流到RTMP服务器命令 - weixin_37897683的博客 - CSDN博客 https://blog.csdn.net/weixin_37897683/article/detai ...
- 将Android studio的工程导入到eclipse中
自从Android Studio(后面称AS)推出后,越来越多的项目都使用AS开发. AS往eclipse迁移的方法: 其实很简单,代码都是一样的,从AS工程中找到与Eclipse工程对应的文件,放到 ...
- Java 常用工具类之 String 类
String 类的特点: 字符串对象一旦被初始化就不会被改变. //以下代码的区别: String s = "abc"; // 在常量池中创建一个字符串对象, 池中没有就建立, 池 ...
- centos7开机启动tomcat7
1.进入tomcat/bin vi setenv.sh (原来没有这个文件,需要创建出来) 添加 #add tomcat pid CATALINA_PID="$CATALINA_B ...
- Event对象、队列、multiprocessing模块
一.Event对象 线程的一个关键特性是每个线程都是独立运行且状态不可预测.如果程序中的其他线程需要通过判断某个线程的状态来确定自己下一步的操作,这时线程同步问题就 会变得非常棘手.为了解决这些问题, ...
- Nordic Blue Tooth
一 . nordic BLE4.0 1.开发nordic的应用需要安装支持keil的pack库和插件 2.nordic的SDK很完整,实例涵盖了几乎所有的应用 https://www.nordicse ...
- Nodejs学习计划
此文章已经发表于本人博客. 由于公司要求这段时间在学习Nodejs,基本靠自摸一路走来踩了很多坑浪费很多时间,今天就来这里说下,顺便计划一下接下来的学习计划,目前自己做个博客,项目过程中学习了js类以 ...
- Django:学习笔记(4)——请求与响应
Django:学习笔记(4)——请求与响应 0.URL路由基础 Web应用中,用户通过不同URL链接访问我们提供的服务,其中首先经过的是一个URL调度器,它类似于SpringBoot中的前端控制器. ...
- redis 笔记05 Sentinel、集群
Sentinel 1. Sentinel只是一个运行在特殊模式下的Redis服务器,它使用了和普通模式不同的命令表,所以Sentinel模式能够使用的命令和普通的Redis服务器能够使用的命令不同. ...
- Web前端学习笔记之BootStrap
Bootstrap介绍 Bootstrap是Twitter开源的基于HTML.CSS.JavaScript的前端框架. 它是为实现快速开发Web应用程序而设计的一套前端工具包. 它支持响应式布局,并且 ...