saheil-gulati/fcrawling

该包的最新版本(1.0.1)没有提供许可证信息。

多curl库!

1.0.1 2017-03-28 15:18 UTC

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