当前位置:
首页 > temp > python入门教程 >
-
Python批量爬取美女写真集,只需27行代码,实现多页爬取!
先准备一下
首先咱们需要安装一下这两个第三方模块
|
requests >>> # pip install requests |
|
parsel >>> # pip install parsel |
不会安装的小伙伴,键盘按住win+r 在弹出来的运行框 输入cmd 按确定,然后弹出黑色的框框,即命令提示符窗口,输入上面的注释 ,然后按回车即可安装成功。
实现步骤
第一步:找数据对应的链接地址 第二步:python代码发送指定地址的请求 第三步:数据解析(筛选 过滤咱们需要的数据)
解析了每一个相册地址之后
- a 创建每一个相册的文件夹
- b 请求每一个相册详情页 (1) 发送请求 (2) 解析数据 提取图片链接 (3) 依次请求图片
第四步:保存数据
代码部分
import requests import parsel # 解析数据 import os # Python学习交流 1群 815624229 快满了加2裙 # Python学习交流 2群 279199867 for page in range(1, 12): response = requests.get(f'https://www.jdlingyu.com/tag/%e8%85%bf%e6%8e%a7/page/{page}') # <Response [200]>: 请求成功 # 静态页面的网页源代码 # 把静态页面的 字符串 变成可选的对象 selector = parsel.Selector(response.text) # 3. 数据解析(筛选 过滤咱们需要的数据) # re: 可以直接提取网页字符串数据 # css / xpath: 通过HTML标签进行提取 lis = selector.xpath("//ul[@class='b2_gap ']/li") for li in lis: # text(): 提取标签的文本内容 title = li.xpath('.//h2/a/text()').get() print(f'-------------正在爬取{title}-------------') # a 如果当前文件夹不存在 那么就新建一个 if not os.path.exists('./img/'+title): os.mkdir('./img/'+title) # 每一个相册所在的 网页地址 # 获取a标签属性内容 /@src href = li.xpath('.//h2/a/@href').get() # b 请求每一个相册详情页 data_html = requests.get(href).text # 把字符串对象转变为 可选的selector对象 selector_2 = parsel.Selector(data_html) img_p = selector_2.xpath('//div[@class="entry-content"]/p') for img in img_p: # (2) 解析数据 提取图片链接 img_list = img_p.xpath('.//img/@src').getall() for img_1 in img_list: # content: 获取二进制数据 图片 视频 音频 # 文本: text try: img_data = requests.get(img_1).content # 图片文件名 except: continue img_name = img_1.split('/')[-1] with open(f'img\\{title}\\{img_name}', mode='wb') as f: f.write(img_data) print('下载完成:', img_name)
效果展示
出处:https://www.cnblogs.com/hahaa/p/16204122.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数