标题很明确了吧,我们如何才能在网页上爬取图片呢?
首先,打开一个网址:(就用这个举例子吧)
http://www.win4000.com/wallpaper_2285_0_0_1.html

那么,url就是它了,接下来,对url进行访问(记得UA伪装,可以通过抓包工具获得,这里我就不写了)

page_text=requests.get(url=url,headers=headers).text

图片肯定在页面的原码中,那么我们获得页面数据,就可以继续搜索图片的具体位置了
拿到页面后,用xpath解析的方式(这种方式我认为比较简便,当然也可以用正则表达式或者bs4),获得页面的li标签

tree=etree.HTML(page_text)
li_list=tree.xpath(’//*[@id=“JwaterFall”]/ul/li’)
如下图

通过xpath,我们获得的是一个list对象,存放着我们所有的li标签,通过for循环,获取每一个li标签的图片详情页地址

li_list=tree.xpath('/html/body/div[5]/div/div[3]/div[1]/div[1]/div/div/div/ul/li')

地址打开后,还没有结束,我们还需要得到图片的地址链接(我们现在得到的是图片详情页的链接)
再根绝xpath,获取图片的链接,这时候,我们是在li标签下获得href的,因此xpath可以写为:

li.xpath(’./a/@href’)[0]

但这里依旧是列表,因此我们需要加个[0]来获得地址详情页的
获得详情页的链接后,记得requests访问,这个访问对象记为a

a=requests.get(url="刚刚获得的详情页地址",headers=headers).text
a_tree=etree.HTML(a)
这里直接定位到图片的地址,a.xpath('/html/body/div[5]/div/div[2]/div/div[2]/div[1]/div[1]/a/img/@src')[0]

既然,我们已经得到了图片的url,那么就可以解析,获得图片了

img_data=requests.get(url="图片的地址",headers=headers).content

接下来就是永久存储(这里注意,图片保存是二进制的,那么就要用wb)
with open(“存放位置”,“wb”) as f:
f.write(img_data)

此时,思路已经完成。但是!!!!!!!!
我们发现一个问题,图片我是得到了,但是只是一张,我想把这些都获取怎么办?

不妨看看,第一张图片详情页的网址与第二章详情页的网址有什么不同吧
第一张的详情页网址
http://www.win4000.com/wallpaper_detail_176558.html
第二张的详情页网址
http://www.win4000.com/wallpaper_detail_176558_2.html
后面多了个"_2",那是不是我只要把详情页的地址加上“_2”就跳到了第二张图片。

这时,又有问题啦,”_detail_176558“这个数字,每个系列的图片可不一样啊,这该怎么往后面加"_2"啊
这个时候就要用想,我们是在“.html”前面加上这个"_2",那么根据python字符串的操作就可以解决这个问题了吧

这样一来,是不是没有问题了??????

还没结束哦,又有问题了!!我怎么知道这个标签下有多少张图片啊,大家看图片详情页

我们只要获得这个”10“,再来一波for循环,岂不起飞

感谢各位能看到这里,我把我写的原码放在下面

#-*-coding:utf-8-*-
import requests
from lxml import etree
import osif __name__=="__main__":if not os.path.exists("../学习资料(终极不改版)"):os.mkdir("../学习资料(终极不改版)")headers={"user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36 SLBrowser/6.0.1.9171"}# 系列图片的网址for j in range(1,6):url=F"http://www.win4000.com/meinvtag10231_{j}.html"all_page=requests.get(url=url,headers=headers).texttree=etree.HTML(all_page)a_list=tree.xpath('//div[@class="list_cont Left_list_cont  Left_list_cont2"]/div[2]//ul[@class="clearfix"]/li/a/@href')# a_list保存的每张系列图片的第一张"""a_url就是系列图的第一张的图片地址比如第一张:http://www.win4000.com/meinv217039.html我们还要获得“极品美女粉色蕾丝裹胸裙性感撩人写真(1/15)”中的15来进行for循环"""for a_url in a_list:img_page=requests.get(url=a_url,headers=headers).texttree1=etree.HTML(img_page)how_many=tree1.xpath('//div[@class="meinv-content clearfix"]/div[@class="Bigimg"]//em/text()')[0]# serise_name=tree1.xpath('//div[@class="meinv-content clearfix"]/div[@class="Bigimg"]//h1/text()')[0]how_many=int(how_many)# serise_name="".join(serise_name)for i in range(1, how_many + 1):a_url_str = "".join(a_url)a_url_list = list(a_url_str)index=a_url_str.rfind(".")a_url_list.insert(index,F"_{i}")img_page_src="".join(a_url_list)img_page_data=requests.get(url=img_page_src,headers=headers).textimg_tree=etree.HTML(img_page_data)img_src=img_tree.xpath('//div[@class="meinv-content clearfix"]//div[@class="pic-meinv"]/a/img[@class="pic-large"]/@url')[0]img_data=requests.get(url=img_src,headers=headers).contentname=img_src.split("/")[-1]img_name = name + F"({i}_{how_many}).jpg"img_path = "../学习资料(终极不改版)/" + img_namewith open(img_path, 'wb') as f:f.write(img_data)print(F"{img_name}\t下载成功!!!")print("下载完成!!!!!老司机起飞")

完美结束,感谢各位观看,诸位有可探讨者,欢迎指点批评,不胜感激,小白一枚,欢迎大牛指点

谢谢

LSP是第一生产力 深夜开车,图片不够了怎么办?爪巴就完事了(爬虫爬取网页图片)相关推荐

  1. node:爬虫爬取网页图片 1

    代码地址如下: http://www.demodashi.com/demo/13845.html 前言 周末自己在家闲着没事,刷着微信,玩着手机,发现自己的微信头像该换了,就去网上找了一下头像,看着图 ...

  2. 上手快!!福利局!新手如何使用python爬虫爬取网页图片(使用正则进行数据解析)当然这个新手是我自己

    作为一个python新入门小白,突然就想发个博客,一方面为了记录学习历程,一方面能分享给新入门的同学经验,更多的是想和大家一起学习和交流.以下是我以小白的角度分享的爬虫的相关知识和一个简单的爬取网页图 ...

  3. python爬虫爬取网页图片_Python爬虫:爬取网页图片

    先分析查找要爬取图片的路径 在浏览器F12 审查元素 整体实现代码 # -- coding:UTF-8 -- import requests from bs4 import BeautifulSoup ...

  4. node:爬虫爬取网页图片

    前言 周末自己在家闲着没事,刷着微信,玩着手机,发现自己的微信头像该换了,就去网上找了一下头像,看着图片,自己就想着作为一个码农,可以把这些图片都爬取下来做成一个微信小程序,说干就干,了解一下基本都知 ...

  5. python爬虫爬取网页图片_Python爬虫实现抓取网页图片

    在逛贴吧的时候看见贴吧里面漂亮的图片,或有漂亮妹纸的图片,是不是想保存下来? 但是有的网页的图片比较多,一个个保存下来比较麻烦. 最近在学Python,所以用Python来抓取网页内容还是比较方便的: ...

  6. python多线程爬取某网站全部h漫画_Python多线程爬虫爬取网页图片

    '''基于多页面多线程''' import os #引入文件模块 import re #正则表达式 importurllib.requestimportthreading#连接网页并返回源码 defo ...

  7. python爬取网页图片详解

    文章目录 什么是爬虫 爬取网页图片实现步骤 第一步:打开所操作的网站(任意一个网站) 第二步:通过python访问这个网站 第三步:点击F12查询相关信息 第四步:爬取图片,下载到本地 第五步:显示测 ...

  8. 用python爬虫爬取网页壁纸图片(彼岸桌面网唯美图片)

    参考文章:https://www.cnblogs.com/franklv/p/6829387.html 今天想给我的电脑里面多加点壁纸,但是嫌弃一个个保存太慢,于是想着写个爬虫直接批量爬取,因为爬虫只 ...

  9. 使用Python爬取网页图片

    使用Python爬取网页图片 李晓文 21 天前 近一段时间在学习如何使用Python进行网络爬虫,越来越觉得Python在处理爬虫问题是非常便捷的,那么接下来我就陆陆续续的将自己学习的爬虫知识分享给 ...

最新文章

  1. 全新尝试|ComponentOne WinForm和.NET Core 3.0
  2. jenkins Auth fail验证失败
  3. php mysqli报错,php安装扩展mysqli的实现步骤及报错解决办法
  4. Xcode升级插件失效修复快捷方式
  5. binlog2sql闪回恢复数据
  6. Cdn间隙性故障总结
  7. 2 str转byte失败_android 4.2的多线程库加载崩溃问题
  8. C语言 实现面向对象
  9. Python Django项目实例二
  10. 神通数据库常见问题解决方案
  11. 《老路用得上的商学课6—10》博弈论模型
  12. Session的详解与使用
  13. 如何实现异地远程登录计算机,两台异地电脑怎么实现远程控制
  14. nat64 dns64 linux 内核支持,NAT64与DNS64
  15. java 无理数_《数学分析原理》笔记之——无理数的引入
  16. Pyecharts树状图:树图
  17. webRTC中语音降噪模块ANS细节详解(三)
  18. iOS Technical Support 苹果技术支持
  19. cl_long.py
  20. Microsoft Word 教程「4」,如何在 Word 中应用样式、主题?

热门文章

  1. 微信页面通过LocalID预览图片,getlocallmgdata
  2. mysql存储animoji_iPhoneXS在微信里发送Animoji表情操作教程
  3. Android 二维码 生成和识别
  4. oracle中dba什么意思,oracle dba
  5. android 家长控制app下载,任天堂家长控制app下载-任天堂家长控制 安卓版v1.0.2-PC6安卓网...
  6. 51单片机汇编学习例程(17)——KeyPad4X4篇
  7. OpenStack 环境配置
  8. python--真气网城市空气质量数据抓取
  9. 推荐程序员面试秘籍!抖音Java后端123面开挂,太牛了!
  10. 如何将数据库中text字段中返回的数据转换成数组的形式,并且将字符串的数字转换成数字的形式显示