[day2]python网络爬虫实战:爬取美女写真图片(增强版)
l> 我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情
文章目录
- 1.开发环境
- 2.第三方库
- 3.实现
- 1.分析url格式
- 2.分析图片格式
- 3.保存图片到本地
- 4.输入页数
- 4.优化
- 1.防止被封
- 2.多线程下载
- 3.便捷获取图片地址
- 5.效果
- 6.Github源码
- 7.Scrapy版
今天我们继续爬取妹子图片,通过另一种方式来实现。
上一篇 我们介绍了怎么爬取美女图片,但是还是有一些可以改进的地方。
- 怎么防止被封
- 是否可以利用多线程加快下载速度
- 有没有更方便的方法获取网页图片地址
1.开发环境
- IDE: PyCharm 2021.2.1 (Professional Edition)
- Python: 3.9.7
2.第三方库
- requests:网络请求
- lxml.etree:分析HTML特征,获取图片地址
3.实现
1.分析url格式
我们再找个网站来分析下。
比如这个网站首页是这样的:https://sc.chinaz.com/tupian/ribenmeinv.html
打开第二页后变成:https://sc.chinaz.com/tupian/ribenmeinv_2.html
也就是第二页后的格式是index_{N}.html
2.分析图片格式
Chrome通过Ctrl + U查看源码。找到图片列表相关的代码区域:
这个时候我们就可以通过etree的xpath来解析图片格式:
html.xpath("//div[@id='container']/div[@class='box picblock col3']/div/a/img/@src2")
3.保存图片到本地
我们可以通过with open
方式来保存图片:
# 访问图片
data = requests.get(image_url).content
# 保存图片
with open(r"C:/meinv/xxx.jpeg", "wb") as file_object:file_object.write(data)
4.输入页数
pages = int(input("请输入总页数:"))
4.优化
1.防止被封
通过模拟浏览器的特征,让网站认为这条请求是通过浏览器发送的。
我们可以在请求的时候加上一个header字段:
header = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36" }
2.多线程下载
如果打算下载多页上的图片,我们可以考虑将每一页交给一个线程去处理,这样多页就可以行下载本页的图片了。
for page in range(pages):t = threading.Thread(target=fetch, args=(page + 1,))t.start()
3.便捷获取图片地址
xpath是一种路径语言,特别适合XML格式的文档。XML是一种树形结构的文档,xpath就提供了在树形结构文档中查找节点的能力。
而正则表达式可以处理任何格式的字符串文档,通过文本特征来查找指定的数据。
大多数情况下,树的搜索是比字符串搜索快的。
xpath的语法参见:https://www.runoob.com/xpath/xpath-syntax.html
5.效果
6.Github源码
[day2]python网络爬虫实战:爬取美女妹子写真图片(增强版)
7.Scrapy版
[day4]python网络爬虫实战:爬取美女写真图片(Scrapy版)
欢迎关注我的技术公众号:国民程序员,我们的目标:输出干货
- 每天分享原创技术文章
- 海量免费技术资料和视频学习资源
- 分享赚钱门道,带领程序员走向财务自由
[day2]python网络爬虫实战:爬取美女写真图片(增强版)相关推荐
- [day4]python网络爬虫实战:爬取美女写真图片(Scrapy版)
l> 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.开发环境 2.第三方库 3.Scrapy简介 4. ...
- lofter 爬虫_Python网络爬虫1 - 爬取网易LOFTER图片
LOFTER是网易出品的优质轻博客,灵感源于国外的tumblr,但比之更加文艺,更加本地化.本人非常喜欢LOFTER的UI设计,以及其中的优质用户和内容,似乎网易并不擅长推广,所以受众并不广泛.这都是 ...
- [day1]python网络爬虫实战:爬取美女写真图片
l> 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.开发环境 2.第三方库 3.实现 1.分析url格 ...
- Python 网络爬虫:爬取4K高清美图
爬取4K高清美图 这篇爬虫主要是用来爬取网站高清4K图片,这也是笔者学初学爬虫的时候最先写一个的爬虫脚本,现在回过头来重新梳理一下,也算是对从前知识的一个总结,希望对大家有所帮助! 文章目录 爬取4K ...
- Python网络爬虫:爬取并下载个性化签名图片 附GUI窗体版
Hello,大家好,我是wangzirui32,最近我开了个新的系列,是"Python网络爬虫"分类,还请大家多多支持! 今天,我们来学习如何爬取并下载个性化签名图片,开始学习吧! ...
- 【爬虫实战】10应用Python网络爬虫——定向爬取百度百科文字
python百度百科爬虫 网页源代码分析 编程实现 小结 网页源代码分析 首先找一下需要爬取的正文: 对应的源代码有两个地方: 上图往后翻会发现省略号,所以下面这张图才是我们需要爬取的部分: 编程实现 ...
- Python网络爬虫之爬取微博热搜
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
- Python网络爬虫:爬取CSDN热搜数据 并保存到本地文件中
hello,大家好,我是wangzirui32,今天我们来学习如何爬取CSDN热搜数据,并保存到Excel表格中. 开始学习吧! 学习目录 1. 数据包抓取 2. 编写代码 1. 数据包抓取 打开CS ...
- Python网络爬虫:爬取豆瓣上《小王子》书评
本文为南大<用Python玩转数据>学习笔记 用到的库或模块: 1.Requests第三方库 用于中小型网络爬虫的信息抓取. 基本方法: requests.get() 请求获取指定YRL位 ...
最新文章
- python安装numpy-python及numpy安装
- JavaScript学习笔记06【高级——JavaScript中的事件】
- hmm 求隐藏序列_结巴分词3--基于汉字成词能力的HMM模型识别未登录词
- springboot 手动提交事务_分布式事务开局第一篇,从数据库事务隔离级别说起
- linux glibc安装mysql_Linux安装MySQL-5.6.24-1.linux_glibc2.5.x86_64.rpm
- FTP 编写 2:客户端与服务端的连接
- 生活随笔:怀念大学时代
- linux 组态软件,基于嵌入式Linux的组态软件实时数据库的设计
- 95后公务员晒3004元工资引群嘲:安逸过了头,人生也就止步了
- Unity 如何实现批量修改图片格式
- 等价类划分法用例设计
- android expandablelistview 动画,的Android ExpandableListView使用动画
- Map的实现类中,哪些是有序的,哪些是无序的
- POI java.lang.IllegalArgumentException: Merged region xxx must contain 2 or more cells问题解决
- 平面曲线的弧长和曲率
- 什么软件可以测试网络的稳定性,手机怎么测试网络稳定性
- spring事务出现的超卖问题
- 综述(三)无人驾驶中感知系统的工作流程及原理
- 储存数据与操作Excel [爬虫专题(9)]
- java curl 使用方法_如何在Java中使用这个cURL POST请求?(Spotify API)
热门文章
- VSC C++ 配置
- 第三方登录用户信息表设计
- 第2节 物理层physical layer——如网线和光纤等相关知识
- linux用什么剪辑视频教程,极简主义:Linux视频剪辑利器Viedo Trimmer
- java 侵入性_侵入性和非侵入式指什么?
- E2E测试---Cypress 使用
- 会话初始协议---SIP协议【详解】
- 计算机类部队文职好考吗,“军队文职”招考遇冷,8000余岗位无人报考,是铁饭碗不香了吗...
- 小米笔记本Air12.5与Deepin系统体验
- Shader Graph 小草顶点动画