当前位置: 首页 > news >正文

爬虫抓包工具和PyExeJs模块

我们在处理一些网站的时候, 会遇到一些屏蔽F12, 以及只要按出浏览器的开发者工具就会关闭甚至死机的现象. 在遇到这类网站的时候. 我们可以使用抓包工具把页面上屏蔽开发者工具的代码给干掉.

Fiddler和Charles

这两款工具是非常优秀的抓包工具. 他们可以监听到我们计算机上所有的http网络请求. 利用这种特性. 可以获取到页面加载过程中的所有内容.

软件安装

对于mac的朋友只能用charles,对于Windows的朋友,建议用fiddler

如果想要了解fiddler的原理,可以看这篇文章Fiddler的工作原理_fiddler中间人攻击-CSDN博客

配置期末端口的配置

点击Tools下的setting

有时候这种host下为Tunnel to,说明请求没有出去被打回来了,这种我们不想看到,可以点

这里讲一讲Fiddler中的找到替换的文件,使用中间人拦截替换。

所谓中间人拦截替换,就是狸猫换太子,将原来的含有无限 debugger 的函数给替换掉,这种方法适用于知道无限 debugger 函数所在的具体 JS 文件,重写 JS 文件,使其不含有无限 debugger 的函数,利用第三方工具将原来的 JS 文件替换成重写过后的文件,这类工具有很多,例如浏览器插件 ReRes,它通过指定规则,可以把请求映射到其他的 URL,也可以映射到本机的文件或者目录,抓包软件 Fidder 的 Auto responder 功能,也可以实现替换。

这里的Enable rules一定要勾选上,还有Unmatched requestspasssthrough,然后选择你要插入的文件,即可。

Enable rules的作用是在 Fiddler 中,Enable rules 的作用是激活自动响应器(AutoResponder)功能。当勾选此选项时,Fiddler 会根据用户在自动响应器中设置的规则来处理 HTTP 请求和响应

在 Fiddler 的 AutoResponder(自动响应器)功能中,Unmatched requests passthrough 选项的作用是控制未匹配到任何规则的请求如何处理。勾选该选项时:未匹配到任何规则的请求将正常发送到服务器,不会受到 Fiddler 自动响应器的干预

在更改了浏览器文件过后,我们一定不要去按旁边这个刷新,或者重新点击链接

我们要使用ctrl+shift+r来对网页进行刷新,如果还是没有效果那就要把浏览器所有的缓存清理掉。

PyExeJs模块

pyexecjs是一个可以帮助我们运行js代码的一个第三方模块. 其使用是非常容易上手的.

但是它的运行是要依赖能运行js的第三方环境的. 这里我们选择用node作为我们运行js的位置.

node.js

安装node.js的教程在这2024最新版Node.js下载安装及环境配置教程【保姆级】_nodejs下载-CSDN博客

安装pyexecjs

pip install pyexecjs

测试一下

import execjs

print(execjs.get().name)  # 需要重启pycharm或者重启电脑 Node.js (V8)

简单使用

import subprocess
from functools import partial
subprocess.Popen = partial(subprocess.Popen, encoding='utf-8')

import execjs

print(execjs.get().name)

# execjs.eval 可以直接运行js代码并得到结果
js = """
    "鲁班_王昭君_猴子_亚瑟_蔡文姬".split("_")
"""
res = execjs.eval(js)
print(res)

# execjs.compile(),  call()
# execjs.compile() 事先加载好一段js代码,
jj = execjs.compile("""
    function an(a, b){
        return a + b    
    }
""")
# call() 运行代码中的xxx函数. 后续的参数是xxx的参数
ret = jj.call("an", 10, 20)
print(ret)

简单实战

百度翻译

相关文章:

  • 领域大模型
  • flink iceberg写数据到hdfs,hive同步读取
  • 【C++游戏引擎开发】数学计算库GLM(线性代数)、CGAL(几何计算)的安装与使用指南
  • 【AI学习】AI Agent(人工智能体)
  • 蓝桥杯 C/C++ 组历届真题合集速刷(一)
  • GeoGPT:重新定义地理信息智能的下一代AI助手
  • 用PointNet++训练自己的数据集(语义分割模型semseg)
  • WEB安全--XSS--DOM破坏
  • 优选算法第八讲:链表
  • HOW - 如何测试 React 代码
  • unity urp 分层调酒思路解析
  • Nacos 服务发现的流程是怎样的?客户端如何获取最新的服务实例列表?
  • 鸿蒙开发_ARKTS快速入门_语法说明_渲染控制---纯血鸿蒙HarmonyOS5.0工作笔记012
  • 【JavaScript】十六、事件捕获和事件冒泡
  • TIM定时器
  • 跟着尚硅谷学vue-day3
  • 《 Scikit-learn与MySQL的深度协同:构建智能数据生态系统的架构哲学》
  • Python调用吉客云库存接口
  • 【学Rust写CAD】30 Argb结构乘Alpha256(Argb.rs 乘法重载)
  • 开发项目问题——moviepy报错两处
  • 中俄弘扬正确二战史观:缅怀历史,重拾初心,阻止悲剧重演
  • 19岁女生注射头孢离世后续:院方道歉,医生停职,监管介入
  • 西南大学教授、重庆健美运动奠基人之一李启圣逝世
  • 融创中国:今年前4个月销售额约112亿元
  • 国家卫健委:有条件的二级及以上综合医院要开设老年医学科
  • 巴基斯坦信德省卡拉奇发生爆炸