您的位置 首页 > 娱乐休闲

【漫画网站图片怎么下载】你要的可爱漂亮动漫壁纸!Python爬虫,爬取4K高清动漫美女图片

相信很多小哥哥,小姐姐们都比较喜欢动画片!一张下载保存得太慢了。

今天,我就教大家如何使用Python爬虫爬取这些图片!这次,需要使用到xpath解析!

使用xpath爬取4K高清动漫图片名称和图片数据

爬取当前页:

# 创建文件夹 存储图片 dirName = 'GirlsLib' if not os.(dirName): os.mkdir(dirName) headers = { 'User-Agent': 'Mozilla (Windows NT 10.0; Win64; x64) AppleWebKi (KHTML, like Gecko) Chrome Safari; } url = '; response = reque(url=url, headers=headers) re = 'gbk' # 页面的编码是gbk page_text = re # 解析图片名称+图片数据 tree = e(page_text)

然后我们来分析下:

打开浏览器抓包工具,我们可以定位到图片存储是定位到指定的<li>标签

这段代码前我们需要用到 局部数据解析,什么是局部数据分析呢?

先看下代码:

li_list = ('//div[@class="slist"]/ul/li') for li in li_list: type(li) # li的数据类型和tree的数据类型一样(<class 'lxml.e;>),那么li也可以调用xpath方法 title = li.xpath('./a/img/@alt')[0] + '.jpg' # 进行局部数据解析.返回的是列表,所以这里这[0] img_src = '; + li.xpath('./a/img/@src')[0] img_data = reque(img_src, headers=headers).content # 图片数据 imgPath = dirName + '/' + title

步骤说明:

存储的是定位到指定的<li>标签

局部数据解析:

  • 我们要将定位到的页面中的标签作为待解析的数据。再次使用xpath表达式解析的数据
  • 在局部数据解析的时候,xpath表达式中要使用./的操作,./表示的就是当前的局部数据(xpath的调用者)

这样,我们就完整地提取出图片名称和图片地址了。

通过运行代码,我们就保存了一张图片!


爬取多页(5页):

我们看到第二页的url:

ulr=

很容易知道分页都是index_d 的

这样,定义一个通用的url模板,

可以利用format函数来实现。

但我们发现 第一页和第二页的url不同,所以还是要加个判断。

for page in range(1, 6): if page == 1: new_url = '; else: new_url = format(url % page)

后续的操作就可以复制之前的代码加进循环里,就可以实现多页下载了!(完整代码在下面)

分享小技巧:xpath表达式也可以在浏览器抓包工具里复制的


完整代码如下:

import os import requests from lxml import etree # 创建保存路径 dirName = 'GirlsLib' if not os.(dirName): os.mkdir(dirName) headers = { 'User-Agent': 'Mozilla (Windows NT 10.0; Win64; x64) AppleWebKi (KHTML, like Gecko) Chrome Safari; } url = 'https://pic.netbian.com/4kdongman/index_%d.html' for page in range(1, 6): if page == 1: new_url = '; else: new_url = format(url % page) # 复制之前的代码加进循环里 response = reque(url=new_url, headers=headers) re = 'gbk' page_text = re tree = e(page_text) li_list = ('//div[@class="slist"]/ul/li') for li in li_list: title = li.xpath('./a/img/@alt')[0] + '.jpg' img_src = '; + li.xpath('./a/img/@src')[0] img_data = reque(img_src, headers=headers).content imgPath = dirName + '/' + title with open(imgPath, 'wb') as f: f.write(img_data) print(title + '保存成功!!!')

运行后,漂亮又可爱的动漫小姐姐就下载到硬盘里了!

关注 Python涛哥,学习更多Python知识!

关于作者: admin

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐