今天,因为分享的程序是:用Python爬取交通指示牌的所有图片
爬取下载交通指示牌 程序说明
1 爬取的网站
今天做一个程序,需要用到交通指示牌的图片,就找到了一个网站,并用Python爬虫进行下载。网页如下:
有7种交通指示牌,共好几十张图片
在这里不公布所爬网站的详细网址,以防爬虫影响人家网站的运营,咱们只做Python爬虫技术交流。
其实,大家自己上网一搜就差不多找到了。
2 交通指示牌图片的页面源代码(部分)
这个爬虫相对简单,所需要的交通指示标志的全部图片链接地址都在页面的源代码中,下图展示了部分的图片源码结构:
找指示牌网站、还有查看后面的“爬取下载交通指示牌程序”全部源代码时,会用到。
这是指示牌的几个大分类
3 爬取下载交通指示牌 程序思路
1) 基本设置部分 ;
a) 导入相关模块
b) 设置网站路径、浏览器相关配置
2)爬取源代码,并进行解码处理等
3)爬取交通指示牌的大分类,并在电脑中建立相关的文件夹,准备下载指示牌的图片
4)爬取交通指示牌的图片下载链接、以及指示牌的名称,并下载图片保存到电脑中
5) 程序全部结束
程序源代码
import requests #用于爬取网页
from lxml import etree #用于解析xml相关操作
import os #用于文件操作相关
url = "https://www.********/" #网址
header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/57.36 (KHTML, like Gecko) Chrome/121.0.0.0'}
s = requests.get(url=url, headers=header) #获取页面源码
s.encoding = requests.utils.get_encodings_from_content(s.text)[0] #解码
s = s.text #源码内容
html = etree.HTML(s) #处理html
list_da = html.xpath('//div[@class="panels"]/div') #找到上层标签
for j in list_da: #为了遍历七大分类
list_fenlei_name = j.xpath('./div[@class="info"]/strong/text()')[0] #找到分类名字
if not os.path.exists(list_fenlei_name): #判断用于存储的文件夹是否存在
os.mkdir(list_fenlei_name) #不存在分类文件夹就创建一个,(保存图片用)
list_img = j.xpath('./ul/li') #获得本分类下所有图片列表
for i in list_img: #遍历分类下的图片
url_img1 = 'http:'+i.xpath("./span/img/@src")[0] #获得图片下载地址
txt_name = i.xpath("./span/img/@alt")[0] #获得图片名称
s1 = requests.get(url=url_img1, headers=header).content #下载图片
path_img = os.path.join(list_fenlei_name, txt_name+".jpg") #生成保存路径
with open(path_img,'wb') as f: #开始保存图片
f.write(s1)
print("ok", path_img) #成功下载的提示
本文结束
如有疑问,请直接留言!必回!
如有帮助,请点赞转发!感谢!
我用实战的方法自学了多种编程语言,
希望把实战速学的方法传播给更多的人,
你的一赞之力就能让更多人看到。
关注Python入门速学,
带你实战快速学Python
原文始发于微信公众号(Python入门速学):Python爬虫练习:爬取下载交通指示牌全部图片
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/236428.html