Python爬虫神器:这是我过Debugger检测最简单的方法,没有之一

本文介绍了Reqable这款跨平台的HTTP开发和调试工具,它支持多种协议,适合专业人员使用。文中展示了其抓包、重写、替换响应和脚本等功能的使用方法,还赠送全套Python学习资料,包括学习路线、开发工具、学习笔记等。

1. 工具介绍

Reqable是一款跨平台的专业HTTP开发和调试工具,在全平台支持HTTP1、HTTP2和HTTP3(QUIC)协议,简单易用、功能强大、性能高效,助力程序开发和测试人员提高生产力!本产品需要一定的网络基础知识,适合开发、测试、网络、安全、爬虫等工程专业人员使用,或者在专业人员的指导下使用。

下载地址:

https://reqable.com/zh-CN/
  1. 逆向分析

安装好工具后,按照提示安装证书,打开百度,发现可以抓包了,直接开干。

实战地址:

'aHR0cHM6Ly93d3cueHkxMDgwLm5ldC8='

浏览器打开后,会停在debugger位置:

通过分析上面的代码得知,这个 loop函数调用在这里:

setInterval(loop, 1);

而这个函数仅仅只是干扰调试,有或者无均不影响整个网站,因此,将该行直接屏蔽掉即可。所以,需要修改它的响应代码。

  1. 小试牛刀

1.点击软件界面的这里的图标,开启 重写 功能

2.然后右键点击这个图标,选择 新建规则:

3.如图所示,新建规则:

名称可以随便输入,URL 填写完整,注意后面加 * 号,正则匹配一下,后面的 *? 点击让它高亮即可。行为,则选择 修改响应:

编辑框里面如上编辑,屏蔽掉该语句的执行,然后点击完成即可。

4.再次请求该网站,不再停留在debugger位置了,搜索发现,已经被替换掉了。

4. 其他功能

如果有多处需要修改,上面的操作就显得力不从心了,这个时候,我们可以选择它的 替换响应 功能:

我一般选择 文件替换:

大家可以试试把首页dump下来,然后替换试试,本文就不重复赘述了。

还有另外一种功能,可以实现同样的效果,就是它强大的 脚本功能 .

关掉上面的 重写 功能,打开 脚本 功能,如下图:

同样,右键点击这个图标,选择 新建脚本 :

名称和URL 设置,和上面的一样,没啥差别,我们修改它的响应函数:

def onResponse(context, response):
  # Update status code
  # response.code = 404

  # APIs are same as `onRequest`
  test = str(response.body)
  if "setInterval(loop, 1);" in test:
      print ("666")
      response.body.replace("setInterval(loop, 1)",";")
      return response;

使用的是Python语言,非常的nice,简单看下API文档,就知道怎么写了。

这里我 将它的 body先转成 字符串 类型,然后再判断和改写。本案例中不用做判断,直接替换即可。

def onResponse(context, response):
  # Update status code
  # response.code = 404

  # APIs are same as `onRequest`
  response.body.replace("setInterval(loop, 1);",";")
  return response

按下 Ctrl + S 保存,但不要关闭这个窗口,方便我们观察日志。再次刷新网站,窗口日志显示:

这里打印了 666,说明 已经执行了替换。再次按下F12,不再停留在debugger位置了,非常的nice。

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述
若有侵权,请联系删除
在使用 Python 调试器时,出现 **"Connection to Python debugger failed: Interrupted function call: accept failed"** 错误通常与调试器的配置、环境设置或程序运行状态有关。以下是可能导致该问题的原因及对应的解决方法: ### 1. 调试端口冲突或占用 调试器依赖于特定端口进行通信,如果该端口被其他进程占用或未正确释放,会导致连接失败。可以通过以下方式排查和修复: - 检查是否已有调试会话正在运行,尝试关闭所有调试实例并重新启动。 - 使用命令行工具(如 `netstat -ano` 或 `lsof -i :<port>`)检查调试端口是否被占用,并终止相关进程。 ### 2. 解释器版本不兼容 不同版本的 Python 解释器可能对调试协议的支持存在差异,尤其是在项目中使用的解释器版本与 PyCharm 默认使用的版本不一致时[^3]。建议采取以下措施: - 在 PyCharm 中进入 **Settings > Project: <your_project> > Python Interpreter**。 - 点击右侧的齿轮图标,选择 **Add...** 并添加适合项目的 Python 版本(例如 Python 3.6)。 - 切换项目使用的解释器为新添加的版本,并确保运行和调试均使用同一解释器。 ### 3. 文件名冲突或敏感词命名 某些文件名可能会与 Python 内置模块或其他库产生冲突,导致调试器无法正常工作。例如文件名为 `code.py`、`thread.py` 等敏感名称[^4]。建议: - 将此类文件重命名为非关键字名称,避免与内置模块冲突。 - 确保项目结构中没有与标准库模块同名的自定义模块。 ### 4. 防火墙或安全软件限制 系统防火墙或第三方安全软件有时会阻止调试器监听本地端口,造成连接中断。可以尝试: - 暂时禁用防火墙或杀毒软件,测试是否仍报错。 - 在防火墙设置中允许 PyCharm 或 Python 相关进程通过网络。 ### 5. IDE 缓存问题 PyCharm 的缓存文件可能损坏,影响调试器正常运行。可尝试清除缓存并重启 IDE: - 关闭 PyCharm。 - 删除缓存目录(路径因操作系统而异): - Windows: `%APPDATA%\JetBrains\PyCharm<version>\cache` - macOS: `~/Library/Application Support/JetBrains/PyCharm<version>/cache` - Linux: `~/.cache/JetBrains/PyCharm<version>` - 重新启动 PyCharm 并尝试调试。 ### 示例:切换解释器版本 ```python # 示例代码无需修改,仅用于说明切换解释器后的运行效果 def main(): print("Hello, debugging!") if __name__ == "__main__": main() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值