Python爬取4K图片
今天,我们用Python来爬取4K图片的数据,并保存图片。
首先打开网址:http://pic.netbian.com/4kfengjing/
打开F12开发者工具,elements栏中定位到图片信息。其中我们可以看出,所有的图片信息都是在一个< div>标签中,并且该div拥有属性class=“slist”,每一个< li >标签内容对应一张图片信息,只要从< li >标签信息中获取到src属性值、alt属性值即可当做图片的名称和访问地址:
src="/uploads/allimg/180325/192357-1521977037fd66.jpg",
alt=“劳特布龙嫩山谷4k壁纸”。
地址其中一张图片,发现图片访问地址为:http://pic.netbian.com/uploads/allimg/180325/192357-1521977037fd66.jpg,比我们之前获得的src要多出一部分字符串“http://pic.netbian.com”,这里我们需要用到字符串的拼接,组成一个完整的图片下载地址
图片下载成功后,存储到本地文件夹中保存。
实现代码如下:
import requests
from lxml import etree
import osif __name__=="__main__":# URL地址url = 'http://pic.netbian.com/4kfengjing/'headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36'}# 创建文件夹保存图片数据if not os.path.exists('./data/4kPic'):os.mkdir('./data/4kPic')# 爬取页面源数据response = requests.get(url=url,headers=headers)# response.encoding = 'gbk'page_text = response.text# 数据解析:src属性值、alt属性值tree = etree.HTML(page_text)li_list = tree.xpath('//div[@class="slist"]/ul/li')for li in li_list:# 获取图片的src属性值img_src = 'http://pic.netbian.com/'+ li.xpath('./a/img/@src')[0]# 获取图片的alt属性值img_name = li.xpath('./a/img/@alt')[0]+'.jpg'img_name = img_name.encode('iso-8859-1').decode('gbk')# print(img_name,img_src)# 访问图片地址img_data = requests.get(url=img_src,headers=headers).content# 持久化存储图片数据img_path = 'data/4kPic/'+img_namewith open(img_path,'wb') as fp:fp.write(img_data)print(img_name,'打印成功!!!')
运行结果如下:
当前页面的图片爬取成功后,如果想要爬取所有页面的图片该如何操作了?比如这里总共有190页的数据
我们先尝试一下翻页,看看页面URL变化
URL的地址变成http://pic.netbian.com/4kfengjing/index_3.html,那么我们是不是只要把index_后面的数字参数化,然后循环抓取页面的数据就可以了。这里我们可以使用一个for循环来获取页数,然后填入URL地址中就可以了,代码实现如下:
url = 'http://pic.netbian.com/4kfengjing/index_%d.html'for pageNum in range(1,191):new_url = format(url%pageNum)
下面显示所有代码:
import requests
from lxml import etree
import osif __name__=="__main__":# URL地址# url = 'http://pic.netbian.com/4kfengjing/'# 创建文件夹保存图片数据if not os.path.exists('./data/4kPic'):os.mkdir('./data/4kPic')url = 'http://pic.netbian.com/4kfengjing/index_%d.html'for pageNum in range(1,191):new_url = format(url%pageNum)headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36'}# 爬取页面源数据response = requests.get(url=new_url, headers=headers)# response.encoding = 'gbk'page_text = response.text# 数据解析:src属性值、alt属性值tree = etree.HTML(page_text)li_list = tree.xpath('//div[@class="slist"]/ul/li')for li in li_list:# 获取图片的src属性值img_src = 'http://pic.netbian.com/' + li.xpath('./a/img/@src')[0]# 获取图片的alt属性值img_name = li.xpath('./a/img/@alt')[0] + '.jpg'img_name = img_name.encode('iso-8859-1').decode('gbk')# print(img_name,img_src)# 访问图片地址img_data = requests.get(url=img_src, headers=headers).content# 持久化存储图片数据img_path = 'data/4kPic/' + img_namewith open(img_path, 'wb') as fp:fp.write(img_data)print(img_name, '打印成功!!!')
运行结果如下:
所有图片都保存到文件夹4kPic中
现在我们使用Python爬取页面所有4K图片的需求算是实现了!!!
Python爬取4K图片相关推荐
- python爬取4k小姐姐图片 人生苦短 我用python
4k壁纸它来了 前言 分析 代码 拼接每一页图片的路径 对每一页图片进行页面的解析,拿到图片详情页的url 拿到图片的url和图片名 线程池 多线程下载 总结 成果展示 老样子 先来几张图 前言 今天 ...
- python爬取4k高清壁纸(多线程版)
刚学了多线程,于是把上次写的博客拿出来进行改写, 原文链接:python爬取4k高清壁纸(再也不怕没有壁纸了) 爬取过程已经在上一次写过了,可以点击原文链接查看. 废话不多说,直接上多线程代码: im ...
- python爬取4K超清画质手机壁纸,壁纸这东西当然是越多越好啦~
前言 手机壁纸这东西大家都很熟悉吧,相信不论谁打开手机都希望自己的壁纸是自己喜欢的图片, 但是一张壁纸用久了就会想换一张新鲜感满满的图(当然排除情有独钟的), 但挑选图片的时间总是恒久的,有时长时间的 ...
- 使用Python爬取网页图片
使用Python爬取网页图片 李晓文 21 天前 近一段时间在学习如何使用Python进行网络爬虫,越来越觉得Python在处理爬虫问题是非常便捷的,那么接下来我就陆陆续续的将自己学习的爬虫知识分享给 ...
- 利用python爬取网页图片
学习python爬取网页图片的时候,可以通过这个工具去批量下载你想要的图片 开始正题: 我从尤物网去爬取我喜欢的女神的写真照,我们这里主要用到的就两个模块 re和urllib模块,有的时候可能会用到t ...
- python爬取美女图片的练习
python 爬取美女图片的练习 主要使用 xpath 定位获取 图片的链接 本次练习使用到os库 ,lmxl库 , requests库 import requests from lxml impor ...
- Python爬取bing图片
我之前写过一篇Python爬取百度图片,有兴趣的朋友可以去读一下,这次写的是爬取Bing的图片. 打开Bing图片,搜索关键词,开始分析页面,可以发现bing和百度一样都是下滑自动加载,百度默认一次加 ...
- python爬取搜狗图片
python爬取搜狗图片 cond(`""" 对于动态加载的网站图片的获取,我们需要去分析js内容一定要让网页发生加载后去分析,分析network 里的XHR,可以看到需 ...
- Python爬取网站图片并保存,超级简单
Python爬取网站图片并保存,超级简单 先看看结果吧,去bilibili上拿到的图片=-= 第一步,导入模块 import requests from bs4 import BeautifulSou ...
最新文章
- python中complex函数的用法_Python 内置函数complex详解
- 270亿参数、刷榜CLUE,达摩院神作!
- C语言数组,这个输出模式感觉自己很厉害!_只愿与一人十指紧扣_新浪博客
- python输入函数后无法运行_python - 如何在函数运行期间忽略所有用户输入?_python_酷徒编程知识库...
- 开源怎么挣钱(转帖收藏)
- tensorflow随笔-tf.ReaderBase
- 开源GIS(十九)——WKT、WKB与GeoJSON
- 对于一万条数据量使用Oracle游标,存储过程,一般查询的速度的对比
- 【jenkins 异常】org.eclipse.jgit.errors.InvalidObjectIdException: Invalid id xxxxx
- MySQL 定时备份数据
- 【华为灰度管理法】之读书思维导图及感想分享
- 商业级web阅读器项目(下下)
- Unity学习之生命周期函数
- 苹果手机屏幕如何投射到win10?
- jenkins自动打包并向Harbor推送镜像
- 工作人员必备的计算机知识,工作必备计算机技巧知识
- 导航栏保持居中并使用swiper作为轮播图进行背景轮播背景
- 【读书分享】精益企业——高效能组织如何规模化创新?
- 贸然用string比较的后果
- 中国企业数字银行行业市场供需与战略研究报告