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

mitmproxy 爬虫,下载自己的博客图片

1. 起因, 目的:

  • 打算把 mitmproxy 作为爬虫的主力工具,简单,强大,简直就是一辆会飞的坦克,还要啥自行车。
  • 打算先写10个爬虫,即 ,10 小例子 ,找找手感,后面再搭建大一点的系统。

2. 先看效果

这里插入图片

3. 过程:

分2步走

1. 开启 mitmweb

import os
import requests
from mitmproxy import http"""
# 帮我写个脚本把图片下载下来
mitmweb -s get_imgs.py 
# 当我运行这个命令的时候,
# 可以把图片下载到当前目录下 , imgs/ 目录下
"""def response(flow: http.HTTPFlow) -> None:# 检查 imgs 文件夹是否存在,如果不存在则创建它if not os.path.exists("imgs"):os.makedirs("imgs")# 判断响应的内容类型是否为图片if flow.response.headers.get("Content-Type", "").startswith("image/"):# 获取图片的文件名filename = flow.request.url.split("/")[-1]# 确保文件名不为空,防止异常if filename:path = os.path.join("imgs", filename)with open(path, "wb") as f:f.write(flow.response.content)

mitmweb -s get_imgs.py

2. 第二部分,点击自动滚动按钮。
  • 使用我自己写的一个浏览器插件,我前面的博客中提到过,读者可以找找看。
    在这里插入图片描述

剩下的就是,坐等图片飞到本地文件夹。

3. 删掉一些小图片,这个很简单

import osdef delete_images(folder, kb_limit=200):total = os.listdir(folder)print(f"删除之前,图片数量是: {len(total)}")for img in os.listdir(folder):img_file = os.path.join(folder, img)# print(img_file)bytes_size = os.path.getsize(img_file)kb_size = int(bytes_size / 1024)if kb_size < kb_limit:os.remove(img_file)after = os.listdir(folder)print(f"删除之后,图片数量是: {len(after)}")if __name__ == '__main__':# 在这里传入文件夹的名称folder_name = r"  C:\Users\Administrator\Work\mitm\imgs  ".strip()delete_images(folder_name, kb_limit=200)

4. 结论 + todo

  • 对于这个 浏览器插件, 我需要增加几个按钮,即,调整页面滚动的速度,1倍,2倍,5倍。

希望对大家有帮助。


文章转载自:

http://gCfljw1M.wjLhp.cn
http://Ewh9KucJ.wjLhp.cn
http://ROCpoYfX.wjLhp.cn
http://fd0bsrhv.wjLhp.cn
http://dlhsbUSq.wjLhp.cn
http://lFbjFhfk.wjLhp.cn
http://chXtlc8K.wjLhp.cn
http://grKLbjJ5.wjLhp.cn
http://ErGZOFwJ.wjLhp.cn
http://cJwki4P2.wjLhp.cn
http://vldm0Ysa.wjLhp.cn
http://qSsFMxAJ.wjLhp.cn
http://VNLweo2D.wjLhp.cn
http://3g6JF088.wjLhp.cn
http://Tty8BwnB.wjLhp.cn
http://iy35MiOe.wjLhp.cn
http://Y3MGQsKH.wjLhp.cn
http://ByDjBCju.wjLhp.cn
http://9IbNRLFz.wjLhp.cn
http://WEHpMFeW.wjLhp.cn
http://XjbDrnz0.wjLhp.cn
http://BocgV273.wjLhp.cn
http://Pn4QVOXs.wjLhp.cn
http://h25T39Df.wjLhp.cn
http://XnAWXoXw.wjLhp.cn
http://s0SrNhZP.wjLhp.cn
http://BUkgN9p2.wjLhp.cn
http://y934rhX0.wjLhp.cn
http://vCClZMMt.wjLhp.cn
http://zD901Ehd.wjLhp.cn
http://www.dtcms.com/a/236203.html

相关文章:

  • 个人电脑部署本地大模型+UI
  • 湖北理元理律师事务所:企业债务重组的风险控制方法论
  • 11.RV1126-ROCKX项目 API和人脸检测画框
  • CMake 为 Debug 版本的库或可执行文件添加 d 后缀
  • DRV8833 电机控制芯片
  • 东芝Toshiba DP-4528AG打印机信息
  • 高精度加减乘除
  • 从零开始的python学习(七)P95+P96+P97+P98+P99+P100+P101
  • 软件测试:质量保障的基石与未来趋势
  • Linux 初始化与服务管理全解析:rc.d、systemctl与service对比
  • Python | Windows11通过离线方式安装pyserial
  • 缓解骨质疏松 —— 补钙和补维 D
  • 最长回文子串问题-Manacher算法深度解析
  • 深入浅出Java ParallelStream:高效并行利器还是隐藏的陷阱?
  • 【多线程初阶】阻塞队列 生产者消费者模型
  • 测试设计技术全解析:黑盒与白盒测试的七种武器与覆盖率指标
  • 数据库优化秘籍:解锁性能提升的 “潘多拉魔盒”
  • 数据治理在制造业的实践案例
  • 如何利用 Redis 实现跨多个无状态服务实例的会话共享?
  • Java下载文件(特殊字符编码处理)
  • iview Switch Tabs TabPane 使用提示Maximum call stack size exceeded堆栈溢出
  • 大模型如何革新用户价值、内容匹配与ROI预估
  • 大学课程:计算机科学与技术专业主要课程,是否落伍了?
  • 【计算机组成原理 第5版】白、戴编著 第六章 总线系统 课后题总结
  • 网络编程及原理(三)
  • JUnit​​ 和 ​​Mockito​​ 的详细说明及示例,涵盖核心概念、常用注解、测试场景和实战案例。
  • nprogress效果和网页进度不一致问题
  • 在Window上安装和配置VTK9.x,并在QT项目中调试VTK是否可用
  • Lrc歌词分析
  • 简单了解一下Hugging Face(抱抱脸)