Python 爬虫进阶必备

2023-11-18

今日网站

aHR0cHM6Ly93d3cuemRheWUuY29tL0ZyZWVJUExpc3QuaHRtbA==

这个网站来自咸鱼的技术交流群

抓包分析与加密定位

这个网站是某代理商的免费代理页面,我们想要实现的就是这个页面上免费代理的提取。

所以先看看反爬的措施是什么?

可以看到 ip 在 response 中的展示的不全,ip 最后一位显示的是wait,通过排查 css 以及字体文件可以先得出一个结果,这个反爬不是字体反爬或 css 反爬

为了确定这个反爬是不是js反爬,我们可以禁用当前网站的 js文件,查看页面的展示是否有变化。

当禁用了页面的js后,可以看到页面上展示的结果已经无法展示完整的 ip 地址了,所以可以判断页面上的ip展示是由 js 控制的

现在需要定位这个 js 逻辑的位置,先看看检索wait能不能找到有关的内容

这里直接说结果,检索的工作量太大了,90 个匹配项相关性都不大,所以先看看别的方法,如果都没有收获的话再回来继续分析。

通过上面这张图,看到替换的位置有v的值是很特殊的,不过经过上面的检索,想通过这个方法去找到加密的直接可以放弃了。

所以继续回到抓包界面试试看。

在抓包的界面里,认真分析还是可以看到一个相关项,这个请求链接长得很奇特。

这么一长串的链接就很可疑,不过这个请求返回的是一个数值没有太多有价值的信息,所以直接看看这个数值是具体用在哪里

因为是一个 xhr 请求,所以直接用 xhr 断点找就很方便

断点打上之后,就出现一些有意思的地方了

往上两个堆栈可以看到,返回值是需要经过一通操作才可以的

再网上看,可以看到这里的逻辑就比较显眼了,直接对 document 进行操作了

代码拿到 console 中测试可以获取到带wait的值

整个函数运行下来就可以直接获取到完整的ip

现在就只要找到这一套字符串替换的逻辑就可以获取完整的 ip 了

加密分析

先看请求的是怎么发出的,上面的图中前一段的domain是固定的

后一段的链接由两个参数拼接

这里未知的是mkshowmak这三个参数

这里的mk是固定值 = xxxmxxxxxxxxxm398mxxx1m402

后面发现这个值是经过加密的请求 ip

这里的ak是动态的,所以还需要构建一个请求动态获取

再来看看showm这个加密,选中即可跳转

这个比较简单直接扣取到 node 环境下运行即可

本地运算的结果如下

这样就可以得请求的链接获取这个请求返回的值代入运算

拿到这个值之后就可以看看接下来进行的操作了

接下来可以看到out()这个方法获取的是当前这个 ip 列表的长度

function out() {
    var myTb = document.getElementById("ipc");
    if (myTb) {
        return myTb.getElementsByTagName("tr").length - 1
    } else
        return 0
}

经过out1()取出每一行 ip 中v的值,这个和我们抓包部分想要从v入手找加密逻辑相印证。

将这个值和上面构建请求获取的值,一起代入dsfgsd运算,就可以得出还原好的 ip 了

所以正确的请求顺序如下

1、请求 base.js 获取mkak这两个值,构造下面的请求,获取返回的值

2、请求免费代理的页面,获取带wait字符的ip还有对应的v

3、将每一个v和 1 中的返回的值,传入dsfgsd中计算,并将结果替换得出正确的 ip

虽然是免费的 ip 代理,不过站方这个思路可以说非常用心了

好了,今天的文章就到这里了,我们下次再会~

对了,看完记得一键四连,这个对我真的很重要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 爬虫进阶必备 的相关文章

随机推荐

  • ffmpeg 音频常用命令

    ffmpeg的使用方式 ffmpeg options infile options i infile outfile options outfile Stream specifier Some options are applied per
  • Log4j学习笔记

    用了三四年的C 转向Java的怀抱 还是有诸多的不适应 C 中不论多复杂的Server 只要有GDB在手 总感觉debug都不是啥大事 程序运行期间的各种状态 都可以通过GDB轻松的获取到 而到了Java中 总感觉像是被困住了手脚 有力没法
  • 【JavaScript】npm、Yarn 和 pnpm 的区别

    npm Yarn 和 pnpm 都是用于管理和构建 JavaScript 项目的包管理工具 以下是它们之间的一些区别和特点 npm Node Package Manager npm 是 Node js 官方提供的包管理工具 是 JavaSc
  • 什么是数据中心IP,优缺点是什么?

    如果根据拥有者或者说发送地址来分类的话 可以将代理分为三类 数据中心ip 住宅ip 移动ip 本文我们来了解数据中心ip的原理以及他们的优势劣势 才能选择适合自己的代理 一 什么是数据中心ip代理 数据中心ip是由数据中心拥有和管理的IP的
  • Air780E

    目录 基础资料 探讨重点 实现功能 硬件准备 软件版本 在雁飞格物平台上创建产品 1 创建产品 2 查看雁飞格物平台接入协议 组成ClientId 组成userName 3 设备鉴权信息 鉴权参数计算 python版 4 MQTT直连雁飞格
  • 目标检测之选择性搜索算法实现(符动图演示)

    定义 选择性搜索是在对象检测中使用的区域提议算法 它的设计速度很快 召回率很高 它基于基于颜色 纹理 大小和形状兼容性的相似区域的分层分组计算 操作步骤 首先使用 Felzenszwalb 和 Huttenlocher 基于图像的分割方法
  • clouddrive挂载阿里云盘之后文件不显示

    clouddrive挂载阿里云盘之后文件不显示 此问题是小概率版本bug 待更新后解决 目前解决方案 重新挂载登录刷新
  • R手册(Visualise)--GGally(ggplot2 extensions)

    本站已停止更新 查看最新内容请移至本人博客 Wilen s Blog 文章目录 GGally ggmatrix ggplot2矩阵 ggpairs ggplot2广义配对图 ggscatmat 纯粹定量变量的传统散点图矩阵 返回ggplot
  • canvas绘制并导出图片(画笔)

    绘制 var canvas document getElementById myCanvas canvas width document getElementById drawLine offsetWidth canvas height d
  • HTML中的& nbsp; & ensp; & emsp;等6种空格标记

    代码 1 2 3 4 5 6
  • 【工作笔记】web项目从Spring3.x升级到Spring4.x

    Spring3 x升级到Spring4 x Spring升级首先到https docs spring io spring framework docs官方文档查看Spring各个版本的信息 比较不同 确定要升级的版本和要改动的地方 从官网可
  • 【第01例】IPD进阶

    目录 简介 专栏目录 内容详解 作者简介 相关课程 简介 今天来讲讲 IPD 中涉及的几个评审点 先来看一下 CDCP CDCP 是英文 Concept Decision Check Point 首字母的简称 也就是概念决策评审点 具体讲解
  • 解决:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure(真实有效)

    数据库连接失败 在数据库连接失败 经常会有蛮多一系列的问题导致的原因 这个时候一定要多去尝试一下各种方法 并且做好自己的梳理 一 例如我在SpringBoot项目中使用了阿里的数据库连接池Driud 有次在启动的时候 会报这样的错 Caus
  • if 与elif

    if condition1 代码段1 if condition2 代码段2 else 代码段3 执行顺序 gt 进入if condition1 condition1 为true gt 执行 代码段1 gt 进入 if condition2
  • JVM工具-jstack

    jstack 打印线程堆栈信息 支持支持本地java进程 core文件以及远程java进程 命令格式 jstack options pid jstack options executable core jstack options serv
  • Mac电脑硬件/软件运行状况查看工具

    iStat Menus是一款系统监控和管理工具 旨在帮助Mac用户实时监控电脑的各项硬件和软件信息 它以直观和定制化的方式提供了丰富的系统状态指标 让用户能够全面了解和管理自己的Mac电脑 iStat Menus提供了一系列的菜单栏指示项目
  • iphone文件访问ftp服务器,ipad ftp服务器 iPhone/iPad访问FTP服务器设置步骤

    ipad ftp服务器 iPhone iPad访问FTP服务器设置步骤 2013 02 27 15 35 39 脚本之家 有时候出门在外需要用到电脑中的文件 但是却没有携带电脑或者U盘 那么该怎么办呢 其实在IOS系统上 一些实用的应用软件
  • 云计算基础-基本概念(一)

    云计算基本概念 一 一 网络 1 VPC 虚拟专有网络 2 LB 负载均衡 3 vFW 虚拟防火墙 4 TOR 5 Region 6 AZ 可用区 7 Overlay和Underlay 8 VPC对等连接 9 BGW 10 NAT Gate
  • MySQL 8.0 修改密码 步骤详解(详细图解)

    1 以管理员身份打开cmd窗口 定位到MySQL安装目录下的bin目录 输入net stop mysql 回车 关闭MySQL数据库 2 输入mysqld console skip grant tables shared memory my
  • Python 爬虫进阶必备

    今日网站 aHR0cHM6Ly93d3cuemRheWUuY29tL0ZyZWVJUExpc3QuaHRtbA 这个网站来自咸鱼的技术交流群 抓包分析与加密定位 这个网站是某代理商的免费代理页面 我们想要实现的就是这个页面上免费代理的提取