美文网首页
phpspider简单快速上手的php爬虫框架

phpspider简单快速上手的php爬虫框架

作者: SunY7 | 来源:发表于2023-05-18 16:52 被阅读0次

    Python写爬虫是非常方便的,爬取的目标不同,实现的方式也有很大不同。新闻爬虫的方便之处是,新闻网站几乎没有反爬虫策略,不好的地方是你想要爬取的新闻网站非常非常多。这个时候,效率就是你首要考虑的问题。
    前段时间接到一个开发采集网站数据的项目,从事php开发的我立刻想到使用php做爬虫。虽然python爬虫方便,但是php在这方面也不弱,谁让php是世界上最好的语言!这里推荐一款php的爬虫框架phpspider。不建议自己写爬虫,因为效率太低。使用框架爬虫真的要高效许多。
    比如这里我们可以使用php爬取腾讯新闻上的相关数据,网站的反爬机制,网站的反爬机制不是很严,只需要添加爬虫代理IP进行辅助就可以,代理的选择有很多,这里推荐亿牛云给大家了解下,提供的代理都是高质量的并且支持2种常用的使用模式,这里我们通过使用爬虫代理加强版来实现数据的爬取、
    <?php
    // 要访问的目标页面
    url = "http://httpbin.org/ip";urls = "https://httpbin.org/ip";

    // 代理服务器(产品官网 www.16yun.cn)
    define("PROXY_SERVER", "tcp://t.16yun.cn:31111");
    
    // 代理身份信息
    define("PROXY_USER", "username");
    define("PROXY_PASS", "password");
    
    $proxyAuth = base64_encode(PROXY_USER . ":" . PROXY_PASS);
    
    // 设置 Proxy tunnel
    $tunnel = rand(1,10000);
    
    $headers = implode("\r\n", [
        "Proxy-Authorization: Basic {$proxyAuth}",
        "Proxy-Tunnel: ${tunnel}",
    ]);
    $sniServer = parse_url($urls, PHP_URL_HOST);
    $options = [
        "http" => [
            "proxy"  => PROXY_SERVER,
            "header" => $headers,
            "method" => "GET",
            'request_fulluri' => true,
        ],
        'ssl' => array(
                'SNI_enabled' => true, // Disable SNI for https over http proxies
                'SNI_server_name' => $sniServer
        )
    ];
    print($url);
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    var_dump($result);
    
    // 访问 HTTPS 页面
    print($urls);
    $context = stream_context_create($options);
    $result = file_get_contents($urls, false, $context);
    var_dump($result);
    

    ?>

    相关文章

      网友评论

          本文标题:phpspider简单快速上手的php爬虫框架

          本文链接:https://www.haomeiwen.com/subject/ustgsdtx.html