600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > python网络爬虫汽车之家汽车高清图片

python网络爬虫汽车之家汽车高清图片

时间:2022-05-03 18:09:12

相关推荐

python网络爬虫汽车之家汽车高清图片

今天的目的是爬虫汽车之家某款汽车的外观高清图片

所选汽车:红旗H9

爬取页面的网址:红旗H9外观图片

最终效果图:

首先我们需要安装一下需要的库:

pip install requests

pip3 install Beautifulsoup4

Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据,他可以直接定位到我们想要标签,非常的方便。

开始分析网页结构,点击F12,定位图片的位置对应的代码:

这个是不是图片所在的网址,那我们的任务就显而易见了,我们只要把标签a中的src,但写完代码打印的时候却很少,说明缺少了一些图片地址,再打开网页源代码发现,a标签的格式又不一样了

有2个src的标签,那我们在这些a标签是不是需要src2的值,不要src的。

思路总结:我可以把这个网页所有的img标签取到,然后找到这些图片网址相同的字符,比如_autohomecar__等去排除,最后就是我们想要的信息。

完整代码如下:

import osimport requestsfrom bs4 import BeautifulSoup#导入模块if not os.path.exists('./红旗H9'):os.mkdir('./红旗H9')#如果没有红旗H9文件就创建一个红旗H9文件url = "/photolist/series/5566/1/p1/?pvareaid=101197"response = requests.get(url=url).text#发送网页请求soup = BeautifulSoup(response,'lxml')#解析网页img_lists = soup.findAll("img")#寻找网页所有img标签#进行遍历for img_list in img_lists:img_url1 = img_list.get("src")#获取img标签中的src标签img_url2 = img_list.get("src2")#获取img标签中的src2标签img_urls = ""#print(img_url1)#进行判断,取出汽车外观图片if "_autohomecar__" in str(img_url1):img_urls = img_url1if "_autohomecar__" in str(img_url2):img_urls = img_url2big_img_urls = img_urls.replace("240x180_0_q95_c42_", "")#图片网址小尺寸比例去掉,img_src = "https:" + big_img_urls#拼接成完整的图片地址img_name = img_src.split('/')[-1]#切片命名img_data = requests.get(url=img_src).content#请求图片数据img_path = '红旗H9/' + img_name#路径#下载高清图片with open(img_path,'wb') as fp:fp.write(img_data)print(img_name,"下载完成")

当然也可以用xpath,正则,这里笔者推荐使用bs4.

新人小白,分享自己一些想法,如有不足的地方,或者更好的方法,一起交流学习!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。