目标站: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=;$j<=;$j++){
$gurl="http://www.xicidaili.com/nn/".$j;
$html=curl_request($gurl);
for($i=;$i<=;$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)[])[];
if($num >= && $num<){
return "一般";
}else if($num >= ){
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[]["ip"];
$port=$data[]["port"];
$area=$data[]["area"];
$anonymous=$data[]["anonymous"];
$type=$data[]["type"];
$speed=$data[]["speed"];
$chtime=$data[]["chtime"];
$yztime=$data[]["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

PHP简单爬虫 爬取免费代理ip 一万条的更多相关文章

  1. 简单爬虫-爬取免费代理ip

    环境:python3.6 主要用到模块:requests,PyQuery 代码比较简单,不做过多解释了 #!usr/bin/python # -*- coding: utf-8 -*- import ...

  2. golang爬取免费代理IP

    golang爬取免费的代理IP,并验证代理IP是否可用 这里选择爬取西刺的免费代理Ip,并且只爬取了一页,爬取的时候不设置useAgent西刺不会给你数据,西刺也做反爬虫处理了,所以小心你的IP被封掉 ...

  3. 极简代理IP爬取代码——Python爬取免费代理IP

    这两日又捡起了许久不碰的爬虫知识,原因是亲友在朋友圈拉人投票,点进去一看发现不用登陆或注册,觉得并不复杂,就一时技痒搞一搞,看看自己的知识都忘到啥样了. 分析一看,其实就是个post请求,需要的信息都 ...

  4. C#多线程爬虫抓取免费代理IP

    这里用到一个HTML解析辅助类:HtmlAgilityPack,如果没有网上找一个增加到库里,这个插件有很多版本,如果你开发环境是使用VS2005就2.0的类库,VS2010就使用4.0,以此类推.. ...

  5. vb.net 多线程爬虫抓取免费代理IP

    Class Program Public Shared masterPorxyList As List(Of proxy) = New List(Of proxy)() Public Class pr ...

  6. python爬取免费优质IP归属地查询接口

    python爬取免费优质IP归属地查询接口 具体不表,我今天要做的工作就是: 需要将数据库中大量ip查询出起归属地 刚开始感觉好简单啊,毕竟只需要从百度找个免费接口然后来个python脚本跑一晚上就o ...

  7. 第二篇 - python爬取免费代理

    代理的作用参考https://wenda.so.com/q/1361531401066511?src=140 免费代理很多,但也有很多不可用,所以我们可以用程序对其进行筛选.以能否访问百度为例. 1. ...

  8. Python 爬虫练习(一) 爬取国内代理ip

    简单的正则表达式练习,爬取代理 ip. 仅爬取前三页,用正则匹配过滤出 ip 地址和 端口,分别作为key.value 存入 validip 字典. 如果要确定代理 ip 是否真的可用,还需要再对代理 ...

  9. python简单爬虫爬取百度百科python词条网页

    目标分析:目标:百度百科python词条相关词条网页 - 标题和简介 入口页:https://baike.baidu.com/item/Python/407313 URL格式: - 词条页面URL:/ ...

随机推荐

  1. python网络编程【四】(域名系统)

    域名系统(DNS)是一个分布式的数据库,它主要用来把主机名转换成IP地址.DNS以及相关系统之所以存在,主要有以下两个原因: (1).它们可以使人们比较容易地记住名字. (2).它允许服务器改变IP地 ...

  2. Matlab图像处理基本函数(1)

    表13   灰度形态学(或二值图像)处理函数 函数                       说明 conndef               创建连通矩阵 imbothat             ...

  3. VBS编辑字段

    '为已经创建好的数据表添加字段'参数:strDBPath 字符串型 数据库路径'参数:strTableName 字符串型 需要创建的数据表的名称'参数:strColumnName 字符串型 需要添加的 ...

  4. TFS和VSS的简单对比

    概念: TFS:Team Foundation Server(通常记作“TFS”) 是一种为 Microsoft 产品提供 源代码管理. 数据收集. 报告和项目跟踪,而为协作 软件开发 的项目. 可作 ...

  5. 算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)

    算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification) 0.写在前面的话 我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比 ...

  6. java web多线程

    1.多线程并发时,多个线程同时请求同一个资源,必然导致此资源的数据不安全,A线程修改了B线 程的处理的数据,而B线程又修改了A线程处理的数理.显然这是由于全局资源造成的,有时为了解 决此问题,优先考虑 ...

  7. Servlet--取得初始化配置信息

    关于这块内容,主要就是玩一个接口:ServletConfig.先翻下API,了解一下. 定义: public interface ServletConfig 这个接口定义了一个对象,通过这个对象,Se ...

  8. 1022. Digital Library (30) -map -字符串处理

    题目如下: A Digital Library contains millions of books, stored according to their titles, authors, key w ...

  9. Hello2 source analysis

    在example目录下的web\servlet\hello2\src\main\java\javaeetutorial\hello2路径里可以找到hello2的GreetingServlet.java ...

  10. flask 在视图函数里操作数据库

    在视图函数里操作数据库 在视图函数里操作数据的方式和在python shell中的联系基本相同,只不过需要一些额外的工作.比如把查询结果作为参数 传入模板渲染出来,或是获取表单的字段值作为提交到数据库 ...