怎么利用python多线程爬取天气网站图片并保存
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,这篇文章主要介绍了怎么利用python多线程爬取天气网站图片并保存,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.1 题目指定一个网
千家信息网最后更新 2025年11月14日怎么利用python多线程爬取天气网站图片并保存1.2 思路
1.2.2 解析网页
1.2.3 获取结点
这篇文章主要介绍了怎么利用python多线程爬取天气网站图片并保存,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
1.1 题目
指定一个网站,爬取这个网站中的所有的所有图片,例如中国气象网(www.weather.com.cn),分别使用单线程和多线程的方式爬取。(限定爬取图片数量为学号后3位)
输出信息: 将下载的Url信息在控制台输出,并将下载的图片存储在images子文件中,并给出截图。
1.2 思路
1.2.1 发送请求
构造请求头
import requests,reimport urllibheaders = { 'Connection': 'keep-alive', 'Cache-Control': 'max-age=0', 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 'Accept-Language': 'zh-CN,zh;q=0.9',}url = "http://www.weather.com.cn/"request = urllib.request.Request(url, headers=headers)发送请求
request = urllib.request.Request(url, headers=headers)r = urllib.request.urlopen(request)
1.2.2 解析网页
页面解析,并且替换回车,方便后续进行正则匹配图片。
html = r.read().decode().replace('\n','')1.2.3 获取结点
使用正则匹配,先获取所有的a标签,然后爬取a标签下面的所有图片
urlList = re.findall('获取所有的图片
allImageList = []for k in urlList: try: request = urllib.request.Request(k, headers=headers) r = urllib.request.urlopen(request) html = r.read().decode().replace('\n','') imgList = re.findall(r'这里的请求其实也是要用多线程爬取的,所有后续会补上!
1.2.4 数据保存 (单线程)
for i, img in enumerate(allImageList[:102]): print(f"正在保存第{i + 1}张图片 路径:{img}") resp = requests.get(img) with open(f'./image/{img.split("/")[-1]}', 'wb') as f: # 保存到这个image路径下 f.write(resp.content)1.2.4 数据保存 (多线程)
引入多进程模块
import threading# 多线程def download_imgs(imgList,limit): threads = [] T = [ threading.Thread(target = download, args=(url,i)) for i, url in enumerate(imgList[:limit + 1]) ] for t in T: t.start() threads.append(t) return threads
编写下载函数
def download(img_url,name): resp = requests.get(img_url) try: resp = requests.get(img_url) with open(f'./images/{name}.jpg', 'wb') as f: f.write(resp.content) except Exception as e: print(f"下载失败: {name} {img_url} -> {e}") else: print(f"下载完成: {name} {img_url}")就很随机
感谢你能够认真阅读完这篇文章,希望小编分享的"怎么利用python多线程爬取天气网站图片并保存"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
图片
线程
网站
篇文章
天气
信息
数据
标签
正则
路径
输出
价值
兴趣
函数
同时
学号
思路
截图
控制台
数量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
粤澳网络安全产业园
软件开发是写代码么
5g核心网络安全
狮子座互联网科技有限公司
做软件开发用哪款笔记本好
web服务器的管理员
网络安全法从几几年开始实行
数据库设计的基本任务
呆萌服务器
洋浦科发软件开发有限公司
江苏互联网科技公司 林其兵
乡镇网络安全宣传培训会
安卓代码创建数据库
建立法律法规数据库代码
印能捷服务器如何连接
中科院软件开发厉害吗
数据库显示的方式
数据库原理与技术一篇文章
南京江宁比较好的软件开发公司
sw服务器端口怎么打开
fgo挤爆服务器
数据库的正确性含义
诛仙3新开服务器
服务器租赁常见故障
网络安全对于大学生的理解
蓝盾网络安全业务占市场份额
软件开发进度管控措施
window7服务器管理
服务器 方案
数据库资料题SQL命令