spider-utils-for-php PHP爬虫工具包开源项目

我要开发同款
匿名用户2015年03月28日
50阅读
开发技术PHP
所属分类应用工具、网络爬虫
授权协议GPL

作品详情

spider-utils-for-php:

原则:

简单、易用、灵活、任性任性任性就是任性!

特色:

php界内最简单易用的http-utils,自动识别支持curl、socket、file_get_contents三种方式。

http请求支持gzip,加速请求,节约请求成本。

跟踪301、302跳转(可设置最大跳转数量)。

支持统一转码为utf-8,不再需要关心页面是否是gbk、big5、utf8等编码。

字符串支持通配符、正则表达式、DOM表达式三种方式匹配。

url支持匹配后自动相对路径转绝对路径。

ToBeContinue.

什么?转换相对路径到绝对路径    // $result = https://baidu.com/bac/index.html    $result = spider::abs_url('https://baidu.com/abc/', '../bac/index.html');什么?html2txt? // $result = 123  $result = spider::html2txt('<p><a href="">1</a>23<p>');什么?字符串截取?    // $result = 23abcde    $result = spider::cut_str('123abcdef', '1', 'f');什么?通配符匹配?    // $result = abc    $result = spider::mask_match('123abc123', '123(*)123');    // $result = abc    $result = spider::mask_match('abc123', '(*)123');    // $result = 123 $result = spider::mask_match('123abcabc', '(*)abc');    // $result = 123abc    $result = spider::mask_match('123abcdef', '(*)abc', true);What?发送httpGET请求?    // 自动转码 utf-8,     $result =  spider::fetch_url('https://www.baidu.com/');What?发送httpPOST请求?    $post = "wd=".urlencode("你的网址");     // 数组也一样    // $post = array("wd" => urlencode("你的网址"));    $result = spider::fetch_url('https://www.baidu.com/s?',$post);What?POSTFile?    $post = array("wd" => "https://", "file" => "@c:/1.txt");    $result = spider::fetch_url('https://www.baidu.com/s?',$post);What?要带UserAgent和Cookie?// 一切 headers 都可以传入 $headers = array( 'Cookie' => 'uid=1; my_name_is=mzphp', 'UserAgent' => 'userAgentForIphone', 'Referer' => 'https://baidu.com/',    ); $result = spider::fetch_url('https://www.baidu.com/s?', $post, $headers);

What?这些操作如何漂亮的“在一起”?

   // 首先你需要一个女朋友    $key = "魔爪小说阅读器";    $url = 'https://www.sogou.com/web?query='.urlencode($key).'&ie=utf8';    $html = spider::fetch_url($url, '', array('Referer'=>'https://www.sogou.com/'));    // 对你的女朋友进行分析    $keywordlist = spider::match($html, array('list'=>array(        'cut' => '相关搜索</caption>(*)</tr></table>',        'pattern' => '#id="sogou_\d+_\d+">(?<key>[^>]*?)</a>#is',    )));    //    $newarr = array();    foreach($keywordlist['list'] as $key=>$val){        $newarr[$val['key']] = array('key'=>$val['key']);    }

More?

好吧,你可以参考一下mzphp2 项目中的start_example里的index_control,on_spider方法:https://git.oschina.net/mz/mzphp2/blob/master/start_example/control/index_control.class.php

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论