[Python] 爬虫requests下载保存csv xlsx zip各种资源文件

Python通过哈希算法实现文件完整性校验-以及大型文件完整性校验 Python文件完整性校验-以及大型文件完整性校验,通过hashlib模块实现 阅读详情
AI摘要

本文介绍Python Requests库的高级用法,包括如何通过设置stream参数实现大文件的分块下载,有效避免内存溢出问题,并提供了具体的代码示例。

Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。

import requests
requests.get(..., stream=False)
  • 当把get函数的stream参数设置成False时,它会立即开始下载文件并放到内存中,如果文件过大,有可能导致内存不足。
  • 当把get函数的stream参数设置成True时,它不会立即开始下载,当你使用iter_content或iter_lines遍历内容或访问内容属性时才开始下载。需要注意一点:文件没有下载之前,它也需要保持连接。

iter_content:一块一块的遍历要下载的内容

iter_lines:一行一行的遍历要下载的内容

使用上面两个函数下载大文件可以防止占用过多的内存,因为每次只下载小部分数据。

分块下载保存:

def download_source(url, output_path, chunk_size=512):
    response = requests.get(url=url, stream=True)
    with open(output_path, mode='wb') as f:
        for chunk in response.iter_content(chunk_size):
            f.write(chunk)
            
download_source('www.xxxx.com/aaa/temp.xlsx', 'temp.xlsx')
download_source('www.xxxx.com/aaa/temp.csv', 'temp.csv')
download_source('www.xxxx.com/aaa/temp.zip', 'temp.zip')

以上就是基本的使用。分为get()和保存数据流两个部分。

我们get的时候,需要传入其他的get参数,比如请求头等,所以可以使用自己的get方法。

保存数据也分为流保存和一次保存等。所以可以这样做:

两种get方法:

requests.get()

def get(url, stream=False)
    headers = {'User-Agent': 'xxx', 'Cookie': 'xxx'}
    response = requests.get(url=url, headers=headers, stream=stream)
    return response

session.get()

def get(url, stream=False)
    session = session = requests.Session()
    response = session.get(url=url, stream=True)
    return response

保存数据的方法:

一次下载保存:

def download_source(url, output_path):
    response = get(url, stream=False)
    with open(output_path, mode='wb') as f:
        f.write(response.content)

分块下载保存:

def download_source(url, output_path, chunk_size=512):
    response = get(url, stream=True)
    with open(output_path, mode='wb') as f:
        for chunk in response.iter_content(chunk_size):
            f.write(chunk)

此处做了简单的延伸,其他方法自行延伸即可。

python网络爬虫文档读取-CSV文件 python网络爬虫中进行文档读取时,如何读取csv文件以及如何从csv文件中获取文档中对应的内容,以及以及使用csv.reader和csv.DictReader()的区别。csv数据的采集和整理 阅读详情

相关推荐

python:zipfile --- 使用ZIP存档

python:zipfile --- 使用ZIP存档

FuncPlotCalc 1233

解决 requests 库下载文件问题的技术解析

在一个使用requests库的conda食谱构建过程中,我们注意到存在一个文件下载问题。该文件是从https://dakota.sandia.gov/sites/default/files/distributions/public/dakota-6.5-public.src.tar.gz下载的。使用curl和urllib2库可以正确下载文件,但使用requests-2.12.1库下载时,文件大小却增加了170MB。我们尝试了多个文件,但只有这个文件存在这个问题。

weixin_44617651的博客 313

Python繁琐工作自动化实战:requests+Playwright+openpyxl分层方案

Python自动化并非语法炫技,而是面向重复性高、操作细碎、逻辑固定的‘烦琐重’任务的工程实践。其核心原理在于分层解耦:用requests高效获取静态HTML,以Playwright精准交互动态网页,再借openpyxl实现带样式、公式与图表的Excel落地。这种组合兼顾性能、鲁棒性与业务交付力,广泛应用于数据采集、报表生成、跨系统集成等企业场景。尤其适合需绕过JS渲染、保留格式输出、稳定应对页面变更的中大型自动化项目。

weixin_30745553的博客 330

python解压gz_使用python请求下载压缩tar.gz文件并使用tar解压它

我需要使用请求调用来下载tar gz文件,我发现requests.get会自动解压缩文件,我尝试使用给定的解决方案here但当我试图用tar解压它时,它说它不是gzip格式。我尝试了以下方法:response = requests.get(url,auth=(user, key),stream=True)if response.status_code == 200:with open(target...

weixin_39746229的博客 1115

Python数据分析实战:10小时掌握从爬虫到报告的全流程项目

数据分析是现代数据驱动决策的核心环节,它通过系统性的方法从原始数据中提取有价值的信息和洞察。其基本原理通常遵循一个端到端的闭环流程:从明确业务问题开始,经历数据获取、清洗、探索性分析、建模(可选)到最终的可视化呈现与报告。这一过程的技术价值在于将分散、原始的数据转化为可指导行动的见解,从而优化运营、发现机会或预测趋势。在应用场景上,数据分析广泛应用于电商、金融、物联网、健康监测等众多领域,用于用户行为分析、销售预测、设备监控等。本文以“苏州天气数据分析”这一具体项目为实战载体,系统性地串联了Python爬虫

weixin_33794672的博客 414

Pandas文件读取实战指南:CSV/Excel/JSON/HTML四大格式避坑解析

在数据科学工作流中,文件读取是连接原始数据与分析建模的关键起点。理解不同格式的本质差异——CSV作为纯文本依赖编码与分隔符、Excel作为二进制容器需引擎协同、JSON作为嵌套键值结构需路径导航、HTML作为半结构化文档需DOM提取——是规避常见报错的基础。掌握`encoding`探测、`engine`选型、`orient`控制、`match`筛选等核心机制,不仅能解决UnicodeDecodeError、ParserError、list而非DataFrame等高频问题,更能支撑电商日志清洗、金融报表解析、

weixin_30565199的博客 812

Python 数据采集完全指南 —— 从零开始掌握网络爬虫与文件读取

🐍 Python 入门系列。

belong_my_offer的博客 2047

公共报告 / 公告 / 附件采集框架实战:从列表页到 manifest 的三段式爬虫工程

我长期专注 Python 爬虫工程化实战,主理专栏 👉 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 22

Python爬虫实现公开数据门户格式统计与分析

数据爬虫是获取网络公开数据的关键技术,通过自动化请求和解析网页内容,能够高效采集结构化数据。其核心原理涉及HTTP协议通信、HTML/JSON解析以及反爬机制应对等技术环节。在数据治理领域,爬虫技术能显著提升数据采集效率,特别适用于政府开放数据平台、企业数据中台等场景的元数据管理。本项目针对公开数据门户中常见的CSV、JSON等多格式混杂问题,使用Python的requests和BeautifulSoup库实现自动化格式统计,结合pandas进行数据分析,并通过matplotlib生成可视化报表。其中分布式

weixin_33997389的博客 385

携程酒店评论爬虫实战:接口逆向、反爬突破与增量采集全解析

网络爬虫是数据采集领域的基础技术,核心在于模拟浏览器请求并解析返回的JSON数据。面对异步动态加载、请求头校验及验证码等多层反爬机制,分析真实接口并构造合法请求成为关键能力。一个稳定可用的采集系统,需兼顾请求频率控制、异常重试与增量更新,确保数据全员落地。酒店评论作为典型的UGC数据源,广泛应用于情感分析、口碑监测与竞品调研场景。本文以携程酒店评论为对象,详解从URL分析、接口逆向、请求伪造到数据去重落库的完整链路,并分享应对百度安全验证、Cookie失效、压缩包损坏等高频问题的排查技巧,为同类垂直型爬虫项

weixin_33416697的博客 596

102套Python源码实例实战:从解压报错到跑通改造

编程学习过程中,源码实例是连接理论与工程实践的重要桥梁,而面对大量示例资源时,如何高效利用往往成为难点。一份包含上百个Python实例的压缩包,本质上是一个可复用的知识库,但解压失败、环境配置错误、依赖库缺失等问题常让学习者止步不前。理解zip文件结构与常见报错原理,掌握Python多版本管理与虚拟环境隔离,是顺利运行源代码的关键前置技能。从基础语法到爬虫、数据处理、GUI开发,实例源码覆盖了自动化办公与数据分析的典型场景,通过分类筛选、逐行注释、参数修改和场景迁移,即可将静态代码转化为个人工程能力。本文结

weixin_29291069的博客 325

Python Selenium自动化爬虫实战:城通网盘批量文件下载链接提取

网络爬虫是自动化获取网页数据的关键技术,其核心原理是通过模拟浏览器行为或发送HTTP请求来解析和提取目标信息。在动态网页日益普及的今天,传统的静态请求库往往难以应对由JavaScript渲染生成的内容,此时浏览器自动化工具的价值便凸显出来。Selenium作为成熟的WebDriver框架,能够驱动真实浏览器完整加载页面、执行脚本并渲染最终DOM,从而有效解决动态内容爬取难题,在数据采集、自动化测试和RPA流程中应用广泛。针对城通网盘这类反爬机制较强、页面交互复杂的场景,结合Selenium进行元素定位、智能

weixin_30376509的博客 392

Python+Django招聘数据分析可视化系统:从爬虫到ECharts实战

数据分析与可视化是当前技术应用的热点方向,完整的数据处理链路包括爬虫采集、数据清洗、数据存储与图表展示。以Python生态为例,Django作为后端框架,结合ECharts前端图表库,可以高效构建招聘数据分析可视化系统,实现岗位分布、薪资区间、技能要求等多维度的实时统计与联动筛选。此类系统不仅适用于毕业设计,也是工程实践中值得参考的完整项目范式。文章从通用技术概念切入,深入讲解系统设计原理、核心模块实现与部署技巧,帮助开发者快速掌握从数据获取到可视化呈现的全流程方法,并自然收敛到招聘数据分析场景的技术落地方

weixin_32312889的博客 309

Python Selenium爬虫实战:从动态网站高效抓取结构化数据

网络爬虫是自动化获取互联网公开数据的关键技术,其核心原理是通过程序模拟浏览器请求,解析响应内容以提取目标信息。在数据驱动决策的背景下,爬虫技术为舆情分析、市场研究等领域提供了高效的数据采集能力。面对采用AJAX动态加载、需要交互操作的现代网站,传统基于requests库的静态爬虫方案往往失效。此时,Selenium的价值凸显,它通过驱动真实浏览器(如Chrome)来执行点击、滚动等操作,能够获取完全渲染后的页面源码,从而有效应对动态内容。结合ChromeDriver进行环境配置,并运用显式等待、异常处理等工

anmishi2025的博客 345

Windows 10/11下彻底卸载Chrome的终极指南(附一键清理注册表脚本)

本文提供了一份在Windows 10/11系统中彻底卸载Google Chrome浏览器的终极指南。针对标准卸载后用户数据与注册表项残留的问题,文章详细介绍了从应用程序层、用户数据层到系统集成层的三层深度清理方法,并重点提供了安全高效的注册表清理脚本,确保浏览器所有痕迹被完全移除,解决重装冲突并释放磁盘空间。

elastic6hunter的博客 780

使用GitLab+Drone CI持续集成自动部署web项目,图文详细

kind: pipeline # 定义对象类型,还有secret和signature两种类型 type: docker # 定义流水线类型,还有kubernetes、exec、ssh等类型 name: mall-tiny-drone # 定义流水线名称 steps: # 定义流水线执行步骤,这些步骤将顺序执行 - name: package # 流水线名称 image: maven:3-jdk-8 # 定义创建容器的Docker镜像 volumes: # 将容器内目录挂载到宿主机,仓库

4105

2026年Python零基础实战路线:从环境搭建到项目接单

Python作为一门简洁高效的编程语言,其核心价值在于通过自动化脚本解决实际问题,提升工作效率。其工作原理基于解释型执行和丰富的第三方库生态,使得开发者能够快速构建数据处理、网络爬虫、Web应用等解决方案。在AI编程助手日益普及的背景下,掌握Python基础语法和逻辑思维变得更为关键,这不仅能有效指挥AI工具,还能确保生成代码的准确性。Python的应用场景极为广泛,涵盖数据分析、办公自动化、后端开发及机器学习等多个领域。本文聚焦于构建一个‘最小可行知识体系’,通过任务驱动的学习路径,结合环境搭建、核心语法

weixin_34205826的博客 315

秋叶ComfyUI整合包:一键部署AI绘画工作流,解决环境配置难题

在AI绘画和生成式AI领域,Stable Diffusion作为开源的扩散模型,为图像生成提供了强大的技术基础。其核心原理是通过学习数据分布,对随机噪声进行逐步去噪,最终生成高质量的图像。这项技术的价值在于极大地降低了专业图像创作的门槛,并推动了AIGC(人工智能生成内容)在艺术设计、游戏开发、广告营销等场景的广泛应用。然而,其典型工作流实现工具ComfyUI,在实际部署中常因Python环境、PyTorch版本与CUDA驱动之间的复杂依赖关系而受阻,尤其是面对NVIDIA 30系、40系及未来50系等不同

优快云头条 668

Python自由职业接单实战:从平台选择、报价到交付的全流程指南

Python作为一门通用编程语言,其核心价值在于通过自动化脚本和数据处理能力解决实际业务问题,提升效率并创造商业价值。在软件开发领域,自由职业模式为开发者提供了将技术能力变现的途径,其关键在于理解市场需求、掌握项目管理和客户沟通等工程实践技能。本文聚焦于Python接单的实战方法论,涵盖了数据处理、自动化脚本等高频应用场景,并深入探讨了如何通过规范的工作流程和清晰的沟通来规避常见风险,从而实现稳定的副业收入。对于希望将Python技能转化为实际收益的开发者而言,这是一套可执行、可复现的行动指南。

weixin_33766805的博客 412

基于逆向工程的中国裁判文书网爬虫技术深度解析:从反爬破解到合规抓取

最近承接了一个法律大数据分析的项目,需要获取某类合同纠纷的裁判文书数据,用于分析不同地区的判决规律、法官的裁判倾向以及法条适用情况。原本以为用常规的Python爬虫就能搞定,结果刚对着中国裁判文书网发了几个请求,就遭遇了“滑铁卢”:要么请求直接返回403 Forbidden,要么触发滑块验证码,甚至连IP都被临时封禁了。普通的requests+BeautifulSoup组合在裁判文书网面前完全失效,这也让我意识到,想要获取这里的数据,必须先通过逆向工程拆解网站的请求逻辑和反爬机制。经过一周的摸索,从抓包分析

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 3168

大数据在电力行业的应用案例解析 -【电力技术】(十)电力数字化运营与大数据精准服务体系建设

电力数字化运营,是大数据在电力行业从技术场景走向业务价值的最终落点。它以数据为纽带,将用户、设备、服务、收益、风险全部纳入统一闭环,实现从 “管好电” 向 “运营好能源资产” 升级。在新型电力系统与市场化改革双重驱动下,谁能用好数据、建好闭环、做好运营,谁就能在服务、成本、效益、安全上建立长期优势。

getusushu的博客 69

零基础Python实操手册:3个真实场景搞定办公自动化

Python for Beginners 本质不是语法入门,而是用编程解决实际问题的能力起点。其核心原理在于将重复性人工操作转化为可复用、可维护的代码逻辑,技术价值体现在降本增效与错误可控——通过异常捕获、路径容错、依赖自动安装等工程化设计,让代码在真实办公环境(如中文路径、Excel日期错乱、网络超时)中稳定运行。典型应用场景包括Excel批量合并、PDF水印自动化、竞品价格监控告警等行政/财务/运营高频需求。本文聚焦零基础用户从‘能跑通’到‘可交付’的关键路径,深度融合Python for Beginn

weixin_30268921的博客 343

基于物联网设计的蜂箱智能监测系统设计

为解决传统养蜂业依赖人工、管理效率低下、干扰蜂群等问题,本项目设计并实现了一套基于物联网(IoT)的蜂箱智能监测系统。

679

Python零基础高效学习路径:从环境搭建到实战项目避坑指南

编程学习的关键在于构建高效的学习路径,而非盲目追求教程数量。其核心原理在于通过目标驱动和即时反馈建立正向循环,这能有效解决初学者常见的注意力耗散和成就感缺失问题。从技术价值看,掌握一门如Python这样的通用编程语言,能显著提升个人自动化处理数据、分析问题及构建工具的能力。在应用场景上,Python广泛应用于数据分析、Web开发、自动化脚本及人工智能等领域。本文聚焦Python零基础学习,针对环境搭建、核心语法、实战项目等关键环节,提供了一套被验证过的‘最小可行学习路径’,帮助学习者避开‘400集教程’陷阱

weixin_33928137的博客 445

基于Simulink的超级电容快速响应特性建模与仿真

本文介绍了基于Simulink的超级电容快速响应特性建模与仿真方法。主要内容包括:超级电容的工作原理、一阶RC等效电路模型及其动态电压方程;通过Simulink搭建超级电容模型的两种方法(Simscape Electrical推荐方案和基础模块透明教学方案);仿真100A×100ms放电脉冲下的电压响应特性,并与锂电池进行动态对比;分析超级电容在混合储能系统中的功率分配优势。文章还提供了工程实践要点和扩展方向,如电压均衡、温度影响评估以及与DC-DC变换器集成等。通过建模实践,验证了超级电容在毫秒级响应、高

xiaoheshang_123的博客 98

基于simulink构建一个完整的航空航天器姿态控制与导航仿真模型

航空航天器的姿态控制与导航系统是确保飞行器稳定运行和精确执行任务的核心技术。其目标是通过传感器获取飞行器的状态信息,并利用控制器调整飞行器的姿态,使其按照预定轨迹飞行。基于MATLAB/Simulink平台进行航空航天器姿态控制与导航系统的建模与仿真,可以帮助研究者验证算法性能并优化系统的动态响应。本项目旨在构建一个完整的航空航天器姿态控制与导航仿真模型,包括飞行器动力学建模、传感器模块设计、控制器实现以及导航算法仿真,并通过仿真分析其性能。

xiaoheshang_123的博客 272
上一篇: [Python] 按原格式写excel、xlsx,使用openpyxl
下一篇: [Python] 多进程和多线程在共享资源上的区别
Spade_
博客等级 码龄10年 918粉丝 123原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值