当前位置: 首页 > 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://www.lqws.cn/news/175897.html

相关文章:

  • 国内环境修改 flutter.bat 来设置 flutter 的网络环境
  • 华为大规模——重塑生产力
  • Editing Language Model-based Knowledge Graph Embeddings
  • 基于AWS Serverless架构:零运维构建自动化SEO内容生成系统
  • aardio 简单网页自动化
  • 大模型安全测试报告:千问、GPT 全系列、豆包、Claude 表现优异,DeepSeek、Grok-3 与 Kimi 存在安全隐患
  • 在.NET Core控制器中获取AJAX传递的Body参数
  • 小牛电动NXT,市场销量第一
  • vscode .husky/pre-commit: line 4: npx: command not found
  • C++ 基础特性深度解析
  • 【AI论文】超越80/20规则:高熵少数令牌驱动LLM推理的有效强化学习
  • 3步布局关键词让流量更精准
  • Spring Cloud核心组件深度解析(2025终极指南)
  • 【业务框架】3C-相机-Cinemachine
  • EasyRTC嵌入式音视频通信SDK助力物联网/视频物联网音视频打造全场景应用
  • python报错No module named ‘tensorflow.keras‘
  • rk3588 区分两个相同的usb相机
  • 机器学习KNN算法全解析:从原理到实战
  • 边缘计算服务器
  • linux 故障处置通用流程-36计-28-37
  • npm error Cannot read properties of null (reading ‘matches‘)
  • Vue在线预览excel、word、ppt等格式数据。
  • 彻底解决 MFC 自绘控件闪烁
  • 学习设计模式《十二》——命令模式
  • 数论——同余问题全家桶3 __int128和同余方程组
  • 【Linux】(1)—进程概念-④fork、僵尸进程、孤儿进程
  • vue3 按钮级别权限控制
  • 数学复习笔记 28
  • camera功能真的那么难用吗
  • UniApp系列