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

文件爬虫

🚩简单轻量化文件爬虫

背景

当我们需要在一个网址下载多个文件如pdf、图片时,如果数量少,我们就简单挨个下载就行了,但是如果超出几十个,再挨个下载,就会出现下不全、下载慢的问题,这个工具就是用来自动化下载的一个工具,当然网上有很多教程,我也是将其中的部分代码整合了一下,形成适合自己使用的工具。

直接上代码

import re
import os
import requestsdef fileCrawler(your_website_url, save_folder):if not os.path.exists(save_folder):os.makedirs(save_folder)headers = {"User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Mobile Safari/537.36","Cookie":"BAIDUID=229A18B7534A5CEA671381D45FCDC530:FG=1; BIDUPSID=229A18B7534A5CEA671381D45FCDC530; PSTM=1592693385; BDRCVFR[dG2JNJb_ajR]=mk3SLVN4HKm; userFrom=null; BDRCVFR[-pGxjrCMryR]=mk3SLVN4HKm; H_WISE_SIDS=149389_148867_148211_149537_146732_138426_150175_147527_145599_148186_147715_149253_150045_149280_145607_148660_146055_110085; delPer=0; BDORZ=AE84CDB3A529C0F8A2B9DCDD1D18B695; ysm=10315; IMG_WH=626_611; __bsi=8556698095607456048_00_14_R_R_17_0303_c02f_Y",	}response = requests.get(your_website_url, headers)print(response)#返回结果为418,200为请求成功,418则是对方发现咱们是爬虫了content = response.content.decode('utf-8')# 如果是图片需要分析图片的url,自己写正则link_pattern = r'https://unsplash-assets.imgix.net/modules/.*?.jpg|https://images.unsplash.com/placeholder-avatars/.*?.jpg|https://unsplash.com/favicon-.*?.png|https://unsplash.com/mstile-.*?.png|https://images.unsplash.com/opengraph/.*?.png'detail_url = re.findall(link_pattern,content,re.DOTALL)detail_url_remove_dup = list(set(detail_url))for one_url in detail_url_remove_dup:try:img_res = requests.get(one_url)img_res.raise_for_status()img_filename = os.path.join(save_folder, one_url.split('/')[-1])with open(img_filename, 'wb') as f:f.write(img_res.content)print(f"downloading imgs: {img_filename}")except requests.RequestException as e:print(f"downloading imgs {one_url} occured error: {e}") # 这里有个bug,如果url是一个很长的字符串,这里会全部打印下来,引起很不舒服的感觉,建议直接打印个报错就行print("done!")return 0if __name__ == "__main__":your_website_url = "https://unsplash.com/"save_folder = 'downloaded_images'fileCrawler(your_website_url, save_folder)

关键点

该工具的关键点在于分析下载文件的url,要写一下正则,这是最重要也是最麻烦的地方

http://www.jsqmd.com/news/419866/

相关文章:

  • 基于flask的大学生选课系统的设计与实现-vue pycharm django
  • 江苏有哪些专业做力学仿真服务的公司?2026原创优选指南 - 冠顶工业设备
  • 2026年热门的上海汽车零件真空干燥机/上海真空干燥机哪家质量好厂家推荐(实用) - 品牌宣传支持者
  • 从 “试试看” 到 “指定品牌”:苏州西恩士工业科技有限公司凭什么进入头部企业采购白名单? - 精密仪器科技圈
  • 【读书笔记】《重启世界:ChatGPT之父奥特曼传》
  • 2026年质量好的绳缆/丙纶绳缆实力厂家推荐如何选 - 品牌宣传支持者
  • 题解:P11830 [省选联考 2025] 幸运数字
  • PS
  • 凭什么苏州西恩士工业科技有限公司的售后响应速度,成了行业新标杆? - 精密仪器科技圈
  • 2026年热门的螺丝视觉点数包装机/视觉点数包装机口碑排行热门品牌推荐(实用) - 品牌宣传支持者
  • 为什么说第三方检测机构扩产能,首选苏州西恩士工业科技有限公司? - 精密仪器科技圈
  • 2026年知名的铝单板铝板/冲孔铝板怎么选实力厂家推荐 - 品牌宣传支持者
  • 2026年质量好的浙江电商财务软件/杭州零售业财务软件哪家专业 - 品牌宣传支持者
  • 2026年靠谱的快拼型打包箱房/功能型打包箱房厂家选择指南怎么选(真实参考) - 品牌宣传支持者
  • 2026年热门的脉冲布袋除尘器/气箱脉冲袋式除尘器生产商实力参考哪家质量好(更新) - 品牌宣传支持者
  • 【Java】面试题:Comparable 和 Comparator 的作用以及区别
  • 2026年质量好的高端花泥硅油/合成革柔软剂硅油哪家质量好厂家实力参考 - 品牌宣传支持者
  • 2026年热门的脂肪胺聚醚/聚醚销售厂家推荐哪家好(真实参考) - 品牌宣传支持者
  • 2026年质量好的大连学习3D建模哪家靠谱实力工厂参考 - 品牌宣传支持者
  • 2026年口碑好的带颈不锈钢法兰/松套不锈钢法兰可靠供应商参考哪家靠谱(可靠) - 品牌宣传支持者
  • 2026年优质的大连日本留学打工/深造日本留学院校制造厂家推荐哪家靠谱 - 品牌宣传支持者
  • 2026年比较好的大连日本语言学校申请机构/大连日本语言学校申请奖金怎么选实力厂家推荐 - 品牌宣传支持者
  • 2026年比较好的烷基多糖苷/烷基葡糖苷可靠供应商参考哪家靠谱(可靠) - 品牌宣传支持者
  • C语言精品教程系列-【第12章 关系与逻辑运算】
  • 2026年热门的四川水溶肥/高品质水溶肥哪家强公司实力参考(精选) - 品牌宣传支持者
  • 2026年热门的PC/ASA改性工程塑料/抗静电改性工程塑料哪家专业工厂直供推荐 - 品牌宣传支持者
  • 【第11章 类型转换】C语言类型转换简明教程
  • 2026年二手车托运/私家车/12306汽车托运公司推荐:中振运车,适配个人/商用/异地购车全场景车辆托运服务 - 品牌推荐官
  • 2026年评价高的大连日式搬家公司/大连企业搬家公司直销厂家推荐选哪家(更新) - 品牌宣传支持者
  • linux查找文件