Python爬虫入门案例之回车桌面壁纸网美女图片采集
作者:松鼠爱吃饼干 发布时间:2022-12-25 19:40:57
标签:Python,图片采集,案例
知识点
requests
parsel
re
os
环境
python3.8
pycharm2021
目标网址:
https://mm.enterdesk.com/bizhi/63899-347866.html
【付费VIP完整版】只要看了就能学会的教程,80集Python基础入门视频教学
点这里即可免费在线观看
注意: 在我们查看网页源代码的时候 (1. 控制台为准 2. 以右键查看网页源代码 3. 元素面板)
发送网络请求
获取网页源代码
提取想要的图片链接 css样式提取 xpath re正则表达式 bs4
替换所有的图片链接 换成大图
保存图片
爬虫代码
导入模块
import requests # 第三方库 pip install requests
import parsel # 第三方库 pip install parsel
import os # 新建文件夹
发送网络请求
response = requests.get('https://mm.enterdesk.com/bizhi/64011-348522.html')
获取网页源代码
data_html = response_1.text
提取每个相册的详情页链接地址
selector_1 = parsel.Selector(data_html)
photo_url_list = selector_1.css('.egeli_pic_dl dd a::attr(href)').getall()
title_list = selector_1.css('.egeli_pic_dl dd a img::attr(title)').getall()
for photo_url, title in zip(photo_url_list, title_list):
print(f'*****************正在爬取{title}*****************')
response = requests.get(photo_url)
# <Response [200]>: 请求成功的标识
selector = parsel.Selector(response.text)
# 提取想要的图片链接[第一个链接, 第二个链接,....]
img_src_list = selector.css('.swiper-wrapper a img::attr(src)').getall()
# 新建一个文件夹
if not os.path.exists('img/' + title):
os.mkdir('img/' + title)
替换所有的图片链接 换成大图
for img_src in img_src_list:
# 字符串的替换
img_url = img_src.replace('_360_360', '_source')
保存图片 图片名字
# 图片 音频 视频 二进制数据content
img_data = requests.get(img_url).content
# 图片名称 字符串分割
# 分割完之后 会给我们返回一个列表
img_title = img_url.split('/')[-1]
with open(f'img/{title}/{img_title}', mode='wb') as f:
f.write(img_data)
print(img_title, '保存成功!!!')
翻页
page_html = requests.get('https://mm.enterdesk.com/').text
counts = parsel.Selector(page_html).css('.wrap.no_a::attr(href)').get().split('/')[-1].split('.')[0]
for page in range(1, int(counts) + 1):
print(f'------------------------------------正在爬取第{page}页------------------------------------')
发送网络请求
response_1 = requests.get(f'https://mm.enterdesk.com/{page}.html')
爬取结果
来源:https://pythonjx.blog.csdn.net/article/details/120567725


猜你喜欢
- 需求描述:展示信息时其中部门区域是未知数量的,需要通过遍历进行展示。如下图举例,其中地址和备注是一一对应关系,需遵循该样式。问题描述:起初我
- 最近一直在用TF做CNN的图像分类,当softmax层得到预测结果后,我希望能够看到预测结果,以便和标签之间进行比较。特此补上,以便自己记忆
- seek()方法在偏移设定该文件的当前位置。参数是可选的,默认为0,这意味着绝对的文件定位,它的值如果是1,这意味着寻求相对于当
- 这两副图片哪张更能勾起你买东西的欲望呢?相信大多数买家更喜欢看大图,实物图,产品细节图等.如果我们的卖家更能倾听下我们买家的心声.他们的产品
- 语法结构: 1. Cast 语法结构:CAST ( expression AS data_type [ ( length ) ] ) 2.
- 先上需要用到的全部代码片段(截取) MenuControl.prototype.boxDisplay = false;//是否显示图层选择菜
- 本文实例讲述了Yii2中SqlDataProvider用法。分享给大家供大家参考,具体如下:第一种方法:$totalCount = Yii:
- 利用zipfile模块和pandas获取数据,代码比较简单,做个记录吧:# -*- coding: utf-8 -*-""
- 有一张工资表SALARY如下, (NO 员工编号 ,MONEY 工资)NO NAME &nbs
- 前言在用Pytorch加载数据集时,看GitHub上的代码经常会用到ImageFolder、DataLoader等一系列方法,而这些方法又是
- 0x00 is与====运算符是比较两个对象的内容是否相等,默认情况是调用对象的__eq__方法进行比较;而is是比较两个对象是否一样,它比
- javascript var item = document.getElementById(""); var text
- 本文实例为大家分享了微信小程序调用摄像头实现拍照的具体代码,供大家参考,具体内容如下微信小程序开发文档首先,需要用户授权摄像头权限,这一步是
- Sun周三宣布,准备以10亿美元收购MySQL开源数据库公司。据悉,Sun将支付大约8亿美元现金给MySQL,以获得其私募股票,另外,Sun
- 如题,我有一个模板,我想根据需求复制模板中间的某一页多次,比如复制第五页,然后复制3次,那么第六页,第七页,第八页都是和第五页一模一样的pp
- vue3使用computed获取vuex里数据不再是vue2.0里什么mapGetter,mapState那些复杂的获取方式,vue3.0里
- Postman的脚本可以导出多种语言的脚本,方便二次维护开发。Python的requests库,支持python2和python3,用于发送
- 题目描述原题链接 :66. 加一给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组
- 目录linux mysql5.5升级至mysql5.71.下载mysql5.7.322. 进入旧的mysql的bin目录下导出mysql的数
- 概况Vue3 里要实现数据的响应式监听一共有两种方式既:ref 和 reactive他们既有区别又有联系。ref()ref数据响应式监听。r