怎么利用python多线程爬取天气网站图片并保存
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍了怎么利用python多线程爬取天气网站图片并保存,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.1 题目指定一个网
千家信息网最后更新 2026年11月04日怎么利用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安全错误
数据库的锁怎样保障安全
互联网科技有限公司图片
互联网扶贫科技
互联网科技小贷
上海致骋互联网科技
互联网 新科技
互联网科技股有哪些
中正互联网科技招聘
无锡溥仪互联网科技有限公司
互联网科技公司的市场部门
北京三清互联网科技
广州慧亚互联网科技怎么样
武汉健翔互联网络科技有限公司
千方科技属于互联网企业吗
辽宁互联网新科技
西安小鹰速贷互联网科技有限公司
山东子淼互联网科技有限公司
福建互联网展示科技馆设计
科技互联网专业务虚会材料
互联网企业和网络科技有限公司
如何强化互联网金融科技
美国互联网保险保险科技
汽车互联网创新科技园
互联网科技创新服务
亳州好赞互联网科技有限公司
伍佰万互联网科技怎么赚钱
张召忠谈中国互联网科技
互联网与数字科技关系
互联网科技手抄报图片
互联网科技品牌
华人运通互联网科技公司