PHP简单爬虫 爬取免费代理ip 一万条

本文介绍了一种使用PHP进行网页爬取的方法,通过抓取西刺代理网站的代理IP信息,包括IP地址、端口、位置、匿名级别、类型、速度、存活时间和验证时间等,将数据存储到数据库中。此过程展示了从请求网页、解析HTML、数据清洗到存储的完整爬虫流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目标站:http://www.xicidaili.com/

代码:

<?php
require 'lib/phpQuery.php';
require 'lib/QueryList.php';
require "db/shared/ez_sql_core.php";  
require "db/mysql/ez_sql_mysql.php";  
require "public/function.php";  
use QL\QueryList;

//抓取猫眼电影TOP100榜单内容 
$db = new ezSQL_mysql('root', 'root', 'spider', 'localhost');  

for($j=1;$j<=100;$j++){
    $gurl="http://www.xicidaili.com/nn/".$j;
    $html=curl_request($gurl);
    for($i=1;$i<=100;$i++){
        getIpInfo($html,$i,$db);
    }
    echo "".$j."页完成".PHP_EOL;
}




function getIpInfo($html,$t,$db){
    $rules = array(
        //采集id为one这个元素里面的纯文本内容
        'ip' => array("#ip_list tr:eq($t) td:eq(1)",'text'),//ip
        'port' => array("#ip_list tr:eq($t) td:eq(2)",'text'),//端口
        'area' => array("#ip_list tr:eq($t) td:eq(3)",'text'),//位置
        'anonymous' => array("#ip_list tr:eq($t) td:eq(4)",'text'),//是否匿名
        'type' => array("#ip_list tr:eq($t) td:eq(5)",'text'),//类型
        'speed' => array("#ip_list tr:eq($t) td:eq(6)",'html','',function($content){
            $num=explode('%', explode(':', $content)[1])[0];
            if($num >= 60 && $num<80){
                return "一般";
            }else if($num >= 80){
                return "很快";
            }else{
                return "较慢";
            }
        }),//速度
        'chtime' => array("#ip_list tr:eq($t) td:eq(8)",'text'),//存活时间.
        'yztime' => array("#ip_list tr:eq($t) td:eq(9)",'text'),//验证时间

    );
    $data = QueryList::Query($html,$rules)->data;
    print_r($data);

    $ip=$data[0]["ip"];
    $port=$data[0]["port"];
    $area=$data[0]["area"];
    $anonymous=$data[0]["anonymous"];
    $type=$data[0]["type"];
    $speed=$data[0]["speed"];
    $chtime=$data[0]["chtime"];
    $yztime=$data[0]["yztime"];


    $db->query("INSERT INTO ip (ip, port,area,anonymous,type,speed,chtime,yztime) 
        VALUES ('$ip','$port','$area','$anonymous','$type','$speed','$chtime','$yztime')");
}

结果:

完整项目下载:https://files.cnblogs.com/files/wordblog/spider2.rar

转载于:https://www.cnblogs.com/wordblog/p/9195766.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值