python下载并转存http文件链接的示例

这里示例python下载http文件并转存为本地文件的几种方案。

所用示例参考和修改自网络资料。

1 urllib方案

urlretrieve是urllib库中的一个函数,urllib库是python的内置包,不需要下载安装

这里利用urlretrieve()将链接文件url直接储存本地文件,代码示例如下。

复制代码
from urllib.request import urlretrieve

http_url = "https://hf-mirror.com/datasets/mfumanelli/movies-small/resolve/main/movies-small.csv?download=true"
file_name = "movies-small.csv"
urlretrieve(img_url, file_name)

2 requests方案

通过requests直接写入文件,requests底层框架使用的是urllib3,示例代码如下。

复制代码
import requests

http_url = "https://hf-mirror.com/datasets/mfumanelli/movies-small/resolve/main/movies-small.csv?download=true"
file_name = "movies-small.csv"

res=requests.get(img_url)
with open(file_name ,'wb') as f:
    f.write(res.content)

3 脚本模拟下载

即通过模拟电脑打开图片和下载图片的过程,需要用到两个非常见库:

pyautogui用于传入键盘指令

pyperclip用于操作剪贴板

这里直接展示网友windows代码,未进行实际验证。

在mac平台可能需要作针对性的修改和调整。

复制代码
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
import pyperclip
import pyautogui
from time import sleep

# img_url为图片链接;
# file_name储存用文件名,这里默认储存位置
# 如果需要指定储存位置,需同样用物理方法在弹出的储存窗口中点击选择路径,
# 这里以保存至桌面为例
img_url= 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1569317945346&di=0f7ee951fdbe8a9949a491757dfe2141&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201707%2F24%2F20170724020822_JwihM.jpeg'
file_name = '我的女神周冬雨.jpeg'
file_path = '桌面'

driver = webdriver.Chrome()
driver.get(img_url)
ele=driver.find_element_by_tag_name('img')
# 移动鼠标至图片然后敲击鼠标右键
# 如果你的电脑不会自动将进程切换至selenium浏览器,可以通过以下命令进行切换活动进程
# pyautogui.hotkey('alt', 'tab')
ActionChains(driver).move_to_element(ele).context_click(ele).perform()
# 执行键盘指令时,必须保证此刻的活动任务是selenium的浏览器
# 然后敲击 V 图片另存为(v)的快捷键是V
pyautogui.typewrite('v')
# 单击图片另存之后等1s输入文件名
sleep(1)
# 将文件名传给剪贴板
pyperclip.copy(file_name)
# ctrl + v 粘贴文件名
pyautogui.hotkey('ctrl', 'v')

#下面4行代码是设置文件路径,输完文件名后按6下TAB切到路径栏,
pyautogui.typewrite(['tab','tab','tab','tab','tab','tab','enter'])
pyperclip.copy(file_path)
pyautogui.hotkey('ctrl', 'v')
pyautogui.typewrite(['enter'])

# alt + s 保存
pyautogui.hotkey('alt', 's')
driver.close()

reference


python 实现获取与下载网页中图片的四种方案

https://blog.csdn.net/weixin_43715458/article/details/101283489

相关推荐
牛奔3 分钟前
Go语言中结构体转Map优雅实现
开发语言·后端·macos·golang·xcode
wujj_whut7 分钟前
【Conda实战】从0到1:虚拟环境创建、多Python版本管理与环境切换全指南
开发语言·python·conda
蜗牛^^O^9 分钟前
java中的JUC
java·开发语言
张心独酌10 分钟前
Rust新手练习案例库- rust-learning-example
开发语言·后端·rust
geoqiye11 分钟前
2026官方认证:贵阳宠物行业短视频运营TOP5评测
大数据·python·宠物
龙腾AI白云23 分钟前
AI智能体搭建(3)深度搜索智能体如何搭建与设计 Agent#智能体搭建#多智能体#VLA#大模型
python·django·virtualenv·scikit-learn·tornado
海棠AI实验室26 分钟前
第十一章 错误处理体系:异常分层与可恢复策略
python·异常处理
love530love27 分钟前
EPGF 新手教程 22教学模板不是压缩包:EPGF 如何设计“可复制、可检查、可回收”的课程模板?
ide·人工智能·windows·python·架构·pycharm·epgf
扶苏-su29 分钟前
Java--转换流-InputStreamReader 和 OutputStreamWriter
java·开发语言
无限进步_1 小时前
【C语言&数据结构】二叉树遍历:从前序构建到中序输出
c语言·开发语言·数据结构·c++·算法·github·visual studio