简述

本次要爬取的网站是全网代理,貌似还是代理ip类网站中比较有名的几个之一,其官网地址: http://www.goubanjia.com/

对于这个网站的爬取是属于比较悲剧的,因为很久之前就写好了代码了只是没写博客总结,结果刚才看的时候发现人家改版了…之前的代码基本不能用了只好重新写…

原来是一个列表页有很多项可以看到的,现在改版成只看前20条了,貌似只有不断的检测抓取不然这东西鸡肋没啥用了,不过还是爬取一下主要是了解下它的反爬策略。

分析过程

列表大概是这个样子的:

还是先ctrl+shift+c选一下可疑元素,先选了一下端口,发现元素的class上还是有可疑元素:

然后源代码中搜索这个端口对应的ip定位:

咦?ip呢?ip哪里去了?

然后ctrl+shift+c选一下页面上的ip:

这都是什么鬼….

好的喝口水冷静一下,上面这种就是通过在正常的元素中插入隐藏元素,然后再给隐藏元素设置乱七八糟的值来达到一种混淆的目的,过滤的话也很简单,只要把非有效内容项去掉就可以了。

这里的混淆元素主要包括下面几种:
1. 隐藏的span标签: <span style="display: inline-block;"></span>

2. 隐藏的p标签: <p style="display: none;">22</p>

3. 空标签span

需要注意有效内容并不是都是用div显示的,也有用span显示的。

那么在选择的时候排除掉空标签和具有display:none样式的标识即可(虽然空标签选中也没什么关系…)。

确定了ip的选取策略端口还没搞定,端口的解密逻辑在这个js中: http://www.goubanjia.com/theme/goubanjia/javascript/pde.js?v=1.0。这种类型的js加密跟无忧代理一模一样,之前已经写过不再赘述。

根据以上分析写出简单的爬取demo:

package org.cc11001100.t1;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements; import java.io.IOException;
import java.net.URL;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream; import static java.util.stream.Collectors.toList; /**
* 全网代理: http://www.goubanjia.com/
* ip地址和端口均有反爬处理
*
* @author CC11001100
*/
public class QuanWangProxyIpGrab { public static List<String> downloadAndParse(String url) throws IOException {
Document document = Jsoup.parse(new URL(url), 3000);
return document.select(".table-hover td.ip")
.stream()
.map(e -> {
Elements children = e.children();
Element portElement = children.select(".port").first();
children.remove(portElement);
String ip = children.select(":not(:empty):not([style~=display(\\s*):(\\s*)none(\\s*);])").text().replaceAll("\\s+", "");
int port = decodePort(portElement.attr("class").split("\\s+")[1]);
return ip + ":" + port;
}).collect(toList());
} private static int decodePort(String rawContent) {
String rawNum = Stream.of(rawContent.split(""))
.map("ABCDEFGHIZ"::indexOf)
.map(Object::toString)
.collect(Collectors.joining());
return Integer.parseInt(rawNum) >> 3;
} public static void main(String[] args) throws IOException { downloadAndParse("http://www.goubanjia.com/").forEach(System.out::println); } }

全网代理公开ip爬取(隐藏元素混淆+端口加密)的更多相关文章

  1. 无忧代理免费ip爬取(端口js加密)

    起因 为了训练爬虫技能(其实主要还是js技能-),翻了可能有反爬的网站挨个摧残,现在轮到这个网站了:http://www.data5u.com/free/index.shtml 解密过程 打开网站,在 ...

  2. requests 使用免费的代理ip爬取网站

    import requests import queue import threading from lxml import etree #要爬取的URL url = "http://xxx ...

  3. 代理IP爬取,计算,发放自动化系统

    IoC Python端 MySQL端 PHP端 怎么使用 这学期有一门课叫<物联网与云计算>,于是我就做了一个大作业,实现的是对代理IP的爬取,计算推荐,发放给用户等任务的的自动化系统.由 ...

  4. 代理IP爬取和验证(快代理&西刺代理)

    前言 仅仅伪装网页agent是不够的,你还需要一点新东西 今天主要讲解两个比较知名的国内免费IP代理网站:西刺代理&快代理,我们主要的目标是爬取其免费的高匿代理,这些IP有两大特点:免费,不稳 ...

  5. 蚂蚁代理免费代理ip爬取(端口图片显示+token检查)

    分析 蚂蚁代理的列表页大致是这样的: 端口字段使用了图片显示,并且在图片上还有各种干扰线,保存一个图片到本地用画图打开观察一下: 仔细观察蓝色的线其实是在黑色的数字下面的,其它的干扰线也是,所以这幅图 ...

  6. 酷伯伯实时免费HTTP代理ip爬取(端口图片显示+document.write)

    分析 打开页面http://www.coobobo.com/free-http-proxy/,端口数字一看就不对劲,老规律ctrl+shift+c选一下: 这就很悲剧了,端口数字都是用图片显示的: 不 ...

  7. node爬取页面元素

    /** * Created by on 2018/12/25. */const http = require("https");const fs = require('fs'); ...

  8. python爬取网易翻译 和MD5加密

    一.程序需要知识 1.python中随机数的生成 # 生成 0 ~ 9 之间的随机数 # 导入 random(随机数) 模块 import random print(random.randint(0, ...

  9. Scrapy爬取美女图片第三集 代理ip(下)

    这是我的公众号获取原创保护的首篇文章,原创的肯定将支持我继续前行.现在写这篇文章的时间是晚上11:30,写完就回寝室休息了,希望更多的朋友与我一起同行(当然需要一个善良的妹子的救济).(我的新书< ...

随机推荐

  1. Pymsql

    Pymsql 1.创建数据库连接 pymsql connect conn=pymysql.connect(host="localhost",user="root" ...

  2. vue-cli 去掉严格模式:

    vue-cli 去掉严格模式: 在根目录中找到 .eslintignore 文件,添加 严格模式需要监听的目录 src/*

  3. [LeetCode] Poor Pigs 可怜的猪

    There are 1000 buckets, one and only one of them contains poison, the rest are filled with water. Th ...

  4. 时序数据库(TSDB)-为万物互联插上一双翅膀

    本文由  网易云发布. 时序数据库(TSDB)是一种特定类型的数据库,主要用来存储时序数据.随着5G技术的不断成熟,物联网技术将会使得万物互联.物联网时代之前只有手机.电脑可以联网,以后所有设备都会联 ...

  5. [JSOI2007]麻将

    Description 麻将是中国传统的娱乐工具之一.麻将牌的牌可以分为字牌(共有东.南.西.北.中.发.白七种)和序数 牌(分为条子.饼子.万子三种花色,每种花色各有一到九的九种牌),每种牌各四张. ...

  6. [Sdoi2016]征途

    Description Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界点设有休息站. Pine计划用m天到达T地.除第m天外,每一天晚上Pine都必须在休息站过夜 ...

  7. ●CodeForces 429D Trick_Function

    题链: http://codeforces.com/problemset/problem/429/D题解: 分治,最近点对 不难发现g(i,j)=sum[j]-sum[i], 那么f(i,j)=(i- ...

  8. NOIP2014-10-30模拟赛

    T1:逗比三角形 [题目描述] 小J是一名OI退役滚粗文化课选手,他十分喜欢做题,尤其是裸题.他现在有一个二维盒子和一些二维三角形,这个盒子拥有无限的高度和L的宽度.而且他的三角形也都是一些锐角三角形 ...

  9. bzoj1597[Usaco2008 Mar]土地购买 斜率优化dp

    1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 5524  Solved: 2074[Submit] ...

  10. AR8033 1000M模式下ping包丢包率过大分析与解决

    1 现象 近期对一款基于QCA方案.有线Phy为AR8033.WiFi双频且支持iEEE802.11AC的WLAN产品进行了深度验证,发现有线口同部分PC机直连时,WiFi终端ping 该PC机时总是 ...