saheil-gulati / fcrawling
该包的最新版本(1.0.1)没有提供许可证信息。
多curl库!
1.0.1
2017-03-28 15:18 UTC
Requires
- php: >=5.3
This package is auto-updated.
Last update: 2024-09-08 03:26:24 UTC
README
FCrawling是一个快速的爬虫多curl库。这个库从执行效率的角度包含了一些增强参数。我们经常听到人们谈论发送HTTP请求而不等待响应,一次性发送多个请求,限制请求或分组请求,这时FCrawling就派上用场了。看看例子。
安装
composer require sahil-gulati/fcrawling
或者
在项目目录中创建 composer.json
{ "require":{ "sahil-gulati/fcrawling":"^1.0.0" } }
composer install
使用
<?php require_once 'vendor/autoload.php'; use FCrawling\FCrawling; use FCrawling\FCrawlingRequest; try { /** * Callback function type * (String) `callback_function` global function * (Array) array => 0 (Object) $classObject array => 1 (String) function_name(public) * (Array) array => 0 (String) class_name array => 1 (String) function_name(public static) **/ $fcrawlingObj= new FCrawling("callback_function"); /** * Execution type can 'parallel' or 'serial' * Defaults to 'parallel' **/ $fcrawlingObj->setExecutionType("parallel"); /** * Setting group size for execution * Each group will executed sequencially * Defaults to 'none' **/ $fcrawlingObj->setGroupSize(2); /** * Setting window size for adding requests * Each FCrawling object can handle upto window sized requests, * else exception is thrown * Defaults to '10000' **/ $fcrawlingObj->setWindowSize(100); /** * Setting output reliability, Nothing is returned in case of non reliable output * Defaults to 'true' **/ $fcrawlingObj->setOutputReliability(false); //Request 1 $fcrawlingRequestObj = new FCrawlingRequest("http://www.example.com?name=sahil&browser=chrome"); $fcrawlingRequestObj->setOption(array( CURLOPT_POSTFIELDS=>array("somekey"=>"somevalue") )); $fcrawlingObj->setRequest($fcrawlingRequestObj); //Request 2 $fcrawlingRequestObj = new FCrawlingRequest("http://www.example.com?name=sahil&browser=chrome"); $fcrawlingRequestObj->setOption(array( CURLOPT_HTTPHEADER=>array("Content-Type: application/json") )); $fcrawlingObj->setRequest($fcrawlingRequestObj); //Request 3 $fcrawlingRequestObj = new FCrawlingRequest(); $fcrawlingRequestObj->setOption(array( CURLOPT_URL=>array("http://www.example.com?name=sahil&browser=chrome") )); $fcrawlingObj->setRequest($fcrawlingRequestObj); $fcrawlingObj->execute(); } catch(FCrawlingException $fex) { echo $fex->getMessage(); } function callback_function($response,$responseNo,$info,$groupNo) { print_r(func_get_args()); }