注:本文仅作参考所有操作均为示范,如有侵权请联系删除

目录

前言

一、查看robots.txt协议

二、具体实现

1.引入库

2.分析页面

3.代码实现

4.总代码

5.实现效果

总结


前言

本文演示案例网站见代码

示例版块为“4k美女”,选此版块原因只因编者个人爱好,无不良导向。


一、查看robots.txt协议

在使用爬虫之前,务必首先查看目标网站的robots.txt,规范使用爬虫工具。

该网站爬虫协议如图

更多有关robots.txt协议可查看该博主文章:(6条消息) 查看网站的爬虫协议,简单介绍爬虫协议robots.txt,避免爬虫爬的好,牢饭吃得早(保姆级图文)_爬虫协议怎么看_发现你走远了的博客-CSDN博客

二、具体实现

1.引入库

代码如下:

import requests
from lxml import etree
import os

2.分析页面

首先观察页面,可以发现当前页面图片有限,若想查看更多图片则需执行翻页操作。通过实际操作不难发现,不同页面的url

其区别无非是_后的数字不同,其数字对应相应页面,而首页无_下划线,故选择从第二页往后爬起(这里我偷懒了我承认)。

清楚这一点后即可正式开始对图片src进行分析。

老规矩,右键——检查,可发现所有图片位于class为slist的div/ul/li中,那么以此为xpath即可获得当前页面图片所在li的一个列表

tree = etree.HTML(page_text)
image_list = tree.xpath('//div[@class="slist"]/ul/li')

再往下分析,展开li/a/img,可发现img两个属性"src"与"alt",对src进行抓取即可获得图片地址,对alt进行抓取即可获得图片的名称。

for li in image_list:image_src = 'https://pic.netbian.com/' + li.xpath('./a/img/@src')[0]image_name = li.xpath('./a/img/@alt')[0] + '.jpg'

理论存在,实践开始!

3.代码实现

首先手动进行请求头的伪装:

if __name__ == "__main__":headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.57'}

还记得要对不同页面发送请求吗?在这里我们通过一个for循环来实现:

for i in range(2, 66):url = f'https://pic.netbian.com/4kmeinv/index_{i}.html'response = requests.get(headers=headers, url=url)response.encoding = 'gbk' # 手动规定编码格式page_text = response.texttree = etree.HTML(page_text)image_list = tree.xpath('//div[@class="slist"]/ul/li')

拿到当前页面的li列表后,就可以对它进行遍历分别拿到每张图片的信息,但是先别急 ,在此之前我们需要先确保图片存储到哪个文件夹中,在这里通过os实现:

if not os.path.exists('./4k美女(测试爬虫用!!!)'):os.mkdir('./4k美女(测试爬虫用!!!)')

(我承认我心虚了,在文件夹名中标明测试爬虫用,被别人看到就不好了)

接下来就可以遍历列表,拿到img的两个属性src,alt去补全图片地址与名称

for li in image_list:image_src = 'https://pic.netbian.com/' + li.xpath('./a/img/@src')[0]image_name = li.xpath('./a/img/@alt')[0] + '.jpg'image_data = requests.get(url=image_src, headers=headers).contentimage_path = '4k美女(测试爬虫用!!!)/' + image_name

最后通过拿到的信息将图片以指定名称存入文件夹,并在成功存储后打印一条通过信息来获取进度。

with open(image_path, 'wb') as f:f.write(image_data)print(f"{image_name}下载成功")

4.总代码

总代码如下:

import requests
from lxml import etree
import osif __name__ == "__main__":headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.57'}for i in range(2, 66):url = f'https://pic.netbian.com/4kmeinv/index_{i}.html'response = requests.get(headers=headers, url=url)response.encoding = 'gbk' # 手动规定编码格式page_text = response.texttree = etree.HTML(page_text)image_list = tree.xpath('//div[@class="slist"]/ul/li')if not os.path.exists('./4k美女(测试爬虫用!!!)'):os.mkdir('./4k美女(测试爬虫用!!!)')for li in image_list:image_src = 'https://pic.netbian.com/' + li.xpath('./a/img/@src')[0]image_name = li.xpath('./a/img/@alt')[0] + '.jpg'image_data = requests.get(url=image_src, headers=headers).contentimage_path = '4k美女(测试爬虫用!!!)/' + image_namewith open(image_path, 'wb') as f:f.write(image_data)print(f"{image_name}下载成功")

5.实现效果

(背景有点花哨不好意思)


总结

进行爬虫活动前一定先确保查看robots.txt协议,并确保爬取的行为正当性,以免可刑。

更多关于爬虫内容请点击编者头像,就会发现其实就写了这一个

python爬虫:爬取图片素材案例相关推荐

  1. 【大学生课程实践】实操:使用Python爬虫爬取图片

    实操:使用Python爬虫爬取图片 参考链接: 源码部署 安装源码中的爬虫库 创建 images文件 参考链接: 本博客作为大佬博客学习笔记记录 参考链接:孩子说"你没看过奥特曼" ...

  2. python爬虫爬取图片无法打开_半小时入门python爬虫爬下网站图片,不能再简单了...

    阅读本文大约需要2分钟 本文旨在为没有爬虫基础的,偶尔想爬虫爬一下某个网站上的图片的初学者使用,如果你已经是对爬虫很熟悉了,下面依然有你感兴趣的东西. 我最近也才正儿八经学习了下爬虫,出于某种需要爬一 ...

  3. Python爬虫爬取图片

    ** Python爬虫爬取网站指定图片(多个网站综合经验结论分享) ** 我想以这篇文章来记录自己学习过程以及经验感受,因为我也是个初学者.接下来我将分享几个我爬取过的图片网站,给大家们分享下自己的方 ...

  4. [python爬虫] 爬取图片无法打开或已损坏的简单探讨

    本文主要针对python使用urlretrieve或urlopen下载百度.搜狗.googto(谷歌镜像)等图片时,出现"无法打开图片或已损坏"的问题,作者对它进行简单的探讨.同时 ...

  5. python爬虫爬取图片的简单步骤和实现代码

    目录 1. 如何获取网页信息 1). 直接从网络读取 2). 先将网页源码保存到本地,再读取 2. 分析获取到的网页信息,提取需要的信息(图片地址) 3. 使用request将图片保存到本地以及会碰到 ...

  6. 利用python爬虫爬取图片并且制作马赛克拼图

    想在妹子生日送妹子一张用零食(或者食物类好看的图片)拼成的马赛克拼图,因此探索了一番= =. 首先需要一个软件来制作马赛克拼图,这里使用Foto-Mosaik-Edda(网上也有在线制作的网站,但是我 ...

  7. python爬虫 爬取图片

    图片 爬取单张图片 #网址:https://pic.netbian.com/ 我们爬取:https://pic.netbian.com/4kmeinv/ from lxml import etree ...

  8. python爬虫爬取图片代码_Python爬虫入门:批量爬取网上图片的两种简单实现方式——基于urllib与requests...

    Python到底多强大,绝对超乎菜鸟们(当然也包括我了)的想象.近期我接触到了爬虫,被小小地震撼一下.总体的感觉就两个词--"强大"和"有趣".今天就跟大家分享 ...

  9. python爬虫爬取图片代码_python爬虫实战 爬取天极图片

    学习爬虫个人的意见是直接实战效果会很好 不要等全学完requests ,正则表达式,BeautifulSoup等再来实际操作.其实很多实战我们并不会用到requests库,BeautifulSoup, ...

最新文章

  1. docker多主机网络方案
  2. matlab在linux下面的相对路径的写法
  3. 极验创始人吴渊:恶意流量威胁新趋势,洞察网络黑产3大核心本质
  4. Python学习【第1篇】:Python简介以及入门
  5. 7 SD配置-企业结构-定义-定义信贷控制范围
  6. Casper Labs成为数据隐私协议联盟的创始成员
  7. QT学习-核心类列表-4、Qt WebKit Widgets 5、Qt3DCore
  8. 使用WSDL工具生成C#使用的WebService声明文件
  9. 金融冬天 IT产业如何应对危险与机遇
  10. SAP MM 顾问在实施项目工作中的苦逼和优势
  11. pycharman使用小结
  12. 分享一个好用无广告无水印的绿色录屏软件
  13. python opencv实现三角测量(triangulation)
  14. java毕业设计智能小区物业管理系统Mybatis+系统+数据库+调试部署
  15. 大学必须掌握的软件基础课程
  16. 计算机辅助绘图 选修,计算机辅助绘图(CAD)教学大纲.doc
  17. 解决hotmail邮箱无法登陆问题
  18. 春季舞蹈比赛1 c++
  19. 《SRE生存指南》金句分享
  20. oracle—ebs_采购功能点操作手册,oracle—EBS_采購功能点操作手册.doc

热门文章

  1. 战五渣的六级备战心得
  2. 英特尔公布无人驾驶战略,后 PC 时代芯片王者之争在汽车行业打响
  3. C#中语法代码的学习
  4. 普歌-智音团队-淘宝精品服饰案例
  5. CSS —— background 背景
  6. css直角线_直角符号和垂直符号 过射线的端点和刚作的点,画射线
  7. SQL*Plus的基本操作
  8. 网页配色搭配、页面配色搭配、设计配色搭配
  9. 银河计算机网络科技公司,银河开关,科技创新 银河无限
  10. CentOS7增加新用户并授予权限