加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

phpspider 的简单使用

发布时间:2020-05-25 02:55:54 所属栏目:PHP 来源:互联网
导读:phpspider 的简单使用 phpspider是一款PHP开发蜘蛛爬虫框架。 官方github下载地址:https://github.com/owner888/phpspider官方文

<div id="wmd-preview-section-3461" class="wmd-preview-section preview-content markdown_views">
<h2 id="phpspider-的简单使用">phpspider 的简单使用

  • phpspider是一款PHP开发蜘蛛爬虫框架。

    官方github下载地址:官方文档下载地址:由于官方文档可能会出现打不开的情况(我一开始试了很多次都打不开),这里提供一个网盘下载地址:链接:密码:cylb

  • 使用代码下载下来后里面有几个例子,我这里就以代码中糗事百科为例,主要介绍几点注意事项。1、代码必须放到命令行运行,可以使用php -f语句。2、在代码中的例子糗事百科抓取网址写的是 http,运行不成功,要改成 https。3、save_running_state 参数表示是否保存爬虫运行状态,如果选择了true,则会使用到redis。4、抓取时默认使用的 selector 是 xpath,如果想使用其它的可以用 selector_type 参数修改,文档中介绍目前可用 xpath,jsonpath,regex,但是我看使用 css 也是可以的。5、写 selector 时可以打开要抓取的页面,审查元素,选择要抓取的数据,右击->copy,选择 copy selector 或 copy xpath ,可以直接得到该元素的 selector。(这点在开发文档上也有相应的介绍)。6、抓取的数据存储可以有三种选择,.csv 文件,.sql 文件,也可以直接插入数据库表中,选择相应的表名即可(要字段对应)。

下面贴上我修改后的代码:

// GitHub下载方式
require_once DIR . '/../autoloader.php';
use phpspidercorephpspider;

/ Do NOT delete this comment /
/ 不要删除这段注释 /

$configs = array(
'name' => '糗事百科','log_show' => true,'tasknum' => 1,'save_running_state' => false,'domains' => array(
'qiushibaike.com','www.qiushibaike.com'
),'scan_urls' => array(
'https://www.qiushibaike.com/'
),'list_url_regexes' => array(
"https://www.qiushibaike.com/8hr/page/d+?s=d+"
),'content_url_regexes' => array(
"https://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' => 'root','name' => 'test',// 'queue_config' => array(
// 'host' => '127.0.0.1',// 'port' => 6379,// 'pass' => 'foobared',// '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",array(
'name' => "article_headimg",'author')]//a[1]",array(
'name' => "article_content",'content')]",array(
'name' => "article_publish_time",array(
'name' => "url",// 这里随便设置,on_extract_field回调里面会替换
'required' => true,);

$spider = new phpspider($configs);

$spider->on_handle_img = function($fieldname,$img)
{
$regex = '/src="(https?://.*?)"/i';
preg_match($regex,$img,$rs);
if (!$rs)
{
return $img;
}

$url = $rs[1];
$img = $url;

//$pathinfo = pathinfo($url);
//$fileext = $pathinfo['extension'];
//if (strtolower($fileext) == 'jpeg') 
//{
    //$fileext = 'jpg';
/

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读