功能:通过xpath爬取彼岸图网的高清美女壁纸

url = 'http://pic.netbian.com/4kmeinv/'

1. 通过url请求整张页面的数据

2.通过页面的标签定位图片所在的位置

3.找到所有图片的通用的标签

向图片标签的父级查找,可以发现每一张图片都在ul下的li标签下。

4.知道每一个li标签下图片所处的位置

5.思路:通过url拿到整张页面的数据,通过etree进行标签定位,拿到所有的li标签,再循环对每一个li标签下的每一个图片发送请求,拿到图片。

import requests
from lxml import etree
import os
import time
if not os.path.exists('./4kPic'):
os.makedirs('./4kPic')
url ='http://pic.netbian.com/4kmeinv/'
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36',
}
response = requests.get(url=url,headers=headers)

# 获取网页所有数据
page_text = response.text

# 实例化etree对象
tree = etree.HTML(page_text)

# 找到所有的li标签
li_list = tree.xpath("//div[@class='slist']/ul/li")

# 遍历所有li标签
for li in li_list:
  # 局部解析用./表示当前的li标签
img_src = li.xpath('.//img/@src')[0] # 获取图片路径
img_alt = li.xpath('.//img/@alt')[0] # 获取图片名称

# 解决中文乱码问题的通用方式
img_name = img_alt.encode('iso-8859-1').decode('gbk')
  
  # 获取图片完整路径
img_url = 'http://pic.netbian.com'+img_src

try:
    # content获取图片的二进制数据 文件传输都是以二进制的形式
img_data = requests.get(url=img_url, headers=headers).content
except requests.exceptions.ConnectionError:
time.sleep(1) # 数据请求过快会请求失败 可以time.sleep
continue

fileName = img_name+'.jpg'
with open('4kPic/'+fileName,'wb') as f:
f.write(img_data)
print(img_name+'--------------爬取成功')
注:解决中文乱码问题的方式
方式1:

  response.encoding='utf-8' 有些数据不能直接用utf8编码 这不是一种通用的方式
方式2:

  img_name = img_alt.encode('iso-8859-1').decode('gbk') 这种为通用方式
 

(三)xpath爬取4K高清美女壁纸的更多相关文章

  1. 实例学习——爬取Pexels高清图片

    近来学习爬取Pexels图片时,发现书上代码会抛出ConnectionError,经查阅资料知,可能是向网页申请过于频繁被禁,可使用time.sleep(),减缓爬取速度,但考虑到爬取数据较多,运行时 ...

  2. 别人用钱,而我用python爬虫爬取了一年的4K高清壁纸

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取htt ...

  3. python网络爬虫之解析网页的正则表达式(爬取4k动漫图片)[三]

    前言 hello,大家好 本章可是一个重中之重,因为我们今天是要爬取一个图片而不是一个网页或是一个json 所以我们也就不用用到selenium模块了,当然有兴趣的同学也一样可以使用selenium去 ...

  4. python网络爬虫之解析网页的XPath(爬取Path职位信息)[三]

    目录 前言 XPath的使用方法 XPath爬取数据 后言 @(目录) 前言 本章同样是解析网页,不过使用的解析技术为XPath. 相对于之前的BeautifulSoup,我感觉还行,也是一个比较常用 ...

  5. Python爬虫实战 批量下载高清美女图片

    彼岸图网站里有大量的高清图片素材和壁纸,并且可以免费下载,读者也可以根据自己需要爬取其他类型图片,方法是类似的,本文通过python爬虫批量下载网站里的高清美女图片,熟悉python写爬虫的基本方法: ...

  6. 爬虫系列2:Requests+Xpath 爬取租房网站信息

    Requests+Xpath 爬取租房网站信息 [抓取]:参考前文 爬虫系列1:https://www.cnblogs.com/yizhiamumu/p/9451093.html [分页]:参考前文 ...

  7. 爬虫系列1:Requests+Xpath 爬取豆瓣电影TOP

    爬虫1:Requests+Xpath 爬取豆瓣电影TOP [抓取]:参考前文 爬虫系列1:https://www.cnblogs.com/yizhiamumu/p/9451093.html [分页]: ...

  8. 爬虫系列(十) 用requests和xpath爬取豆瓣电影

    这篇文章我们将使用 requests 和 xpath 爬取豆瓣电影 Top250,下面先贴上最终的效果图: 1.网页分析 (1)分析 URL 规律 我们首先使用 Chrome 浏览器打开 豆瓣电影 T ...

  9. 爬虫系列(十一) 用requests和xpath爬取豆瓣电影评论

    这篇文章,我们继续利用 requests 和 xpath 爬取豆瓣电影的短评,下面还是先贴上效果图: 1.网页分析 (1)翻页 我们还是使用 Chrome 浏览器打开豆瓣电影中某一部电影的评论进行分析 ...

  10. 爬虫系列4:Requests+Xpath 爬取动态数据

    爬虫系列4:Requests+Xpath 爬取动态数据 [抓取]:参考前文 爬虫系列1:https://www.cnblogs.com/yizhiamumu/p/9451093.html [分页]:参 ...

随机推荐

  1. EasyNLP玩转文本摘要(新闻标题)生成

    简介: 本⽂将提供关于PEGASUS的技术解读,以及如何在EasyNLP框架中使⽤与PEGASUS相关的文本摘要(新闻标题)生成模型. 作者:王明.黄俊 导读 文本生成是自然语言处理领域的一个重要研究 ...

  2. 【阿里云采购季】3月采购完,IT运维躺赢一年

    阿里云2020上云采购季正式上线啦!今年的采购季可以逛些啥? 采购季正式期时间: 3月2日-3月31日 在这段时间里,想买啥就买吧,别忘了把想买的产品加入购物车噢,特惠产品叠加购物车满减,更划算噢! ...

  3. Flink 在唯品会的实践

    简介: Flink 在唯品会的容器化实践应用以及产品化经验. 唯品会自 2017 年开始基于 k8s 深入打造高性能.稳定.可靠.易用的实时计算平台,支持唯品会内部业务在平时以及大促的平稳运行.现平台 ...

  4. 知乎的 Flink 数据集成平台建设实践

    简介: 本文由知乎技术平台负责人孙晓光分享,主要介绍知乎 Flink 数据集成平台建设实践.内容如下: 1. 业务场景 : 2. 历史设计 : 3. 全面转向 Flink 后的设计 : 4. 未来 F ...

  5. [ML] Google colab GPU 免费使用, 可挂载 Google drive

    colab 的文本行就相当于命令行,命令统一都在前面加 ! . 开启 GPU 加速,通过菜单栏的 "修改" 菜单,选择 "笔记本设置". 挂载 Google d ...

  6. Fiddler对安卓模拟器中的app抓包

    工具资源 Fiddler: https://www.telerik.com/download/fiddler Xposed Installer: https://repo.xposed.info/mo ...

  7. 快速部署 微软开源的 Garnet 键值数据库

    快速部署 微软开源的 Garnet 键值数据库 Garnet 是 Microsoft Research 推出的一种新型远程缓存存储,其设计速度极快.可扩展且延迟低. Garnet 在单个节点内是线程可 ...

  8. 前端之JavaScript基础学习

    一.JS代码引入以及基本代码规范 # 1.js代码书写格式 <script> ....js的代码 </script> #2.script标签写在页面那个位置 1)页面的head ...

  9. 使用Binlog日志恢复误删的MySQL数据实战

    前言 "删库跑路"是程序员经常谈起的话题,今天,我就要教大家如何删!库!跑!路! 开个玩笑,今天文章的主题是如何使用Mysql内置的Binlog日志对误删的数据进行恢复,读完本文, ...

  10. ajax递归发送请求

    简介 大家都知道浏览器在处理http网络请求的时候,不同的浏览器会有不一样的并发限制,下表是一些主流浏览器对 HTTP 1.1 和 HTTP 1.0 的最大并发连接数目: Browser HTTP/1 ...