zoukankan      html  css  js  c++  java
  • PHP简单爬虫 爬取免费代理ip 一万条

    目标站: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 QLQueryList;
    
    //抓取猫眼电影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

  • 相关阅读:
    SSM 框架-05-详细整合教程(Eclipse版)(Spring+SpringMVC+MyBatis)
    SSM 框架-04-使用maven创建web项目
    SSM 框架-03-MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建
    SSM 框架-02-MyEclipse 2017 安装与破解
    什么是J2EE
    Web前端和后端开发的区别和要求
    SSM 框架集-01-详细介绍-入门问题篇
    MUI框架-11-MUI前端 +php后台接入百度文字识别API
    MUI框架-10-MUI 数据交互-跳转详情页面
    MUI框架-09-MUI 与后台数据交互
  • 原文地址:https://www.cnblogs.com/wordblog/p/9195766.html
Copyright © 2011-2022 走看看