简单的php爬虫

AffettoIris 2023-10-18 2,752 10/18

  1. 宝塔的php.ini在哪?:宝塔php.ini配置文件目录路径在/www/server/php/根据PHP版本选择/etc/php.ini。

  1. centos如何查询当前目录及其子目录下php.ini文件的位置?:

find . -name php.ini 第二个位置表示查询路径,.表示查询当前目录及其子目录下,也可以是根目录/或其他。

  1. 我用vim 打开了php.ini,如何查找allow_url_fopen字符串的位置?:

    进入Vim的命令模式,按下冒号(:)键,输入/allow_url_fopen,然后按下回车键。Vim将会查找并定位到第一个匹配到的字符串allow_url_fopen的位置。你可以使用n键来查找下一个匹配项(next的缩写),或者使用N键查找上一个匹配项。

    Vim区分大小写,如果你想进行不区分大小写的搜索,可以输入/allow_url_fopen\c,其中\c表示不区分大小写。

爬虫小结

我有个需要,爬取http://www.lpv4.cn:10000/api/ipv6.php?ip=2001:da8:a012:389:e5e4:5454:accc:372f的响应数据包,chatgpt给了几种方法,

  1. guzzle库。Guzzle是一个PHP HTTP客户端,它使发送HTTP请求变得很容易,并且与Web服务的整合也很简单。 构建查询字符串、POST请求、大批量上传、大批量下载的简单接口 上传、下载、使用HTTP cookies、上传JSON数据。也就是php的爬虫。

    放弃了。玩不明白,用的人少,我甚至找不到包教包会的教程。

  2. 使用cURL。

    <?php
    // 创建一个cURL资源
    $curl = curl_init();
    
    // 设置请求的URL
    $url = 'http://www.lpv4.cn:10000/api/ipv6.php?ip=2001:da8:a012:389:e5e4:5454:accc:372f';
    curl_setopt($curl, CURLOPT_URL, $url);
    
    // 设置cURL选项,如需要可以设置代理、超时时间等
    // curl_setopt($curl, CURLOPT_PROXY, 'your_proxy');
    // curl_setopt($curl, CURLOPT_TIMEOUT, 10);
    
    // 执行cURL请求
    $response = curl_exec($curl);
    
    // 检查是否有错误发生
    if(curl_errno($curl)){
        echo 'cURL请求错误:' . curl_error($curl);
    }
    
    // 关闭cURL资源
    curl_close($curl);
    
    // 输出响应数据
    echo $response;
    ?>

    缺点很明显。上述代码即使不写echo $response;,也会自动把获取到的响应数据显示在网页上,尽管我没有任何echo和var_dump()。$response也只是个bool值,表示请求成功true活失败false,不是我要的响应包。

  3. 使用file_get_contents函数

    该方法要求服务器上的allow_url_fopen配置项必须为启用状态。

    $url = 'http://www.lpv4.cn:10000/api/ipv6.php?ip=2001:da8:a012:389:e5e4:5454:accc:372f';
    $response = file_get_contents($url);

- THE END -

AffettoIris

10月18日14:22

最后修改:2023年10月18日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论