您的位置 首页 > 娱乐休闲

「Python」爬虫实战,零基础初试爬虫下载图片

爬虫,全称网络爬虫,就是通过技术手段从网络获取数据的程序或者脚本

人生苦短,我选python。本次就用python来进行实现对一个壁纸网站的图片下载

本篇文章就是直接爬虫实战。通过本文,带你了解requests库的基本使用,并且完成壁纸网站的图片爬取

Requests库是python一个很好用的http请求库。封装得很好~在我们爬虫的时候常常也会用到。

Requests的官方介绍说到,让HTTP服务人类。有一说一,这是个非常容易使用的库。本次咱们的爬虫也会用到这个库。

关于requests库的介绍,可以看一下官方文档

Requests: 让 HTTP 服务人类 - Requests 2.18.1 文档

使用前记得安装requests库

pip install requests

进入目标网站

随便点开一张图,查看它的url,

先留意一下这个网址,后面会用到

回到浏览器,打开F12,通过目标元素检查工具,点击刚刚我们点过的图片。通过它的元素我们可以知道a标签里的属性值href的链接就是上面我们访问图片的链接地址

我们在大图的页面,同样用f12点击一下,找到图片的链接地址

访问图片链接发现是咱们要的大图。至此,对于网站的分析完毕。

综上所述,咱们目标网站是一个壁纸图片网站,编程做到的步骤如下:

  1. 访问首页
  2. 定位到每个图片的详情链接
  3. 访问详情链接
  4. 定位到图片对应的大图链接。下载,保存图片

看起来是不是很容易,开干

4.1 访问首页

url = ';with open('index.html', 'wb') as f:

通过requests库发起get请求,请求壁纸网站的首页。并把结果保存在index.html文件里面

打开保存的文件一看,我们把首页给下载下来了。

4.2 定位元素

这里我们通过xpath方式。这里用到的是lxml库。不懂lxml库的话,参考下文

【Python】爬虫解析利器Xpath,由浅入深快速掌握(附源码例子)

PS:谷歌渲染的页面的xpath和requests请求回来的xpath会有不一样。有时需要保存下来进行xpath分析

对于元素进行定位。把a标签的href值全部拿出来,而且也把对应的名称取出来

tree = e)node_list = ('/html/body/div[2]/div[2]/div[3]/ul/li')if len('./a/@href')) > 0: sub_url = node.xpath('./a/@href')[0]if len('./a/@href')) > 0: title = node.xpath('./a/b/text()')[0] ((sub_url, title))

4.3 访问详情页

base_url = ';for sub_url, title in sub_url_list: s_page = base_url + sub_url s_resp = reque(s_page)with open('s.html', 'wb') as f:xxxxxxxxxxbr base_url = ';for sub_url, title in sub_url_list: s_page = base_url + sub_url s_resp = reque(s_page)with open('s.html', 'wb') as f:

4.4 定位图片链接并下载

img = s_('/html/body/div[2]/div[2]/div[3]/div/p/a/img/@src')[0]suffix = img.split('.')[-1]img_content = reque(img).contentwith open(f'./image/{title}.{suffix}', 'wb') as f:xxxxxxxxxxbr img = s_('/html/body/div[2]/div[2]/div[3]/div/p/a/img/@src')[0]suffix = img.split('.')[-1]img_content = reque(img).contentwith open(f'./image/{title}.{suffix}', 'wb') as f:

下载完效果图

4.5 完整源码

if __name__ == '__main__': url = ';with open('index.html', 'wb') as f: tree = e) node_list = ('/html/body/div[2]/div[2]/div[3]/ul/li')if len('./a/@href')) > 0: sub_url = node.xpath('./a/@href')[0]if len('./a/@href')) > 0: title = node.xpath('./a/b/text()')[0] ((sub_url, title)) base_url = ';for sub_url, title in sub_url_list: s_page = base_url + sub_url s_resp = reque(s_page) s_tree = e) img = s_('/html/body/div[2]/div[2]/div[3]/div/p/a/img/@src')[0] suffix = img.split('.')[-1] img_content = reque(img).contentwith open(f'./image/{title}.{suffix}', 'wb') as f:xxxxxxxxxxbr if __name__ == '__main__': url = ';with open('index.html', 'wb') as f: tree = e) node_list = ('/html/body/div[2]/div[2]/div[3]/ul/li')if len('./a/@href')) > 0: sub_url = node.xpath('./a/@href')[0]if len('./a/@href')) > 0: title = node.xpath('./a/b/text()')[0] ((sub_url, title)) base_url = ';for sub_url, title in sub_url_list: s_page = base_url + sub_url s_resp = reque(s_page) s_tree = e) img = s_('/html/body/div[2]/div[2]/div[3]/div/p/a/img/@src')[0] suffix = img.split('.')[-1] img_content = reque(img).contentwith open(f'./image/{title}.{suffix}', 'wb') as f:

妈妈再也不用担心我的学习了。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何获取图片url,如何获取图片url链接,图片url链接生成器,如何获取图片中颜色值”边界阅读