女朋友想换情侣头像了,怎么办?【2万张图片满足要求】
爬虫实战:女朋友的命令不得不立马安排
- 前言
- 数据来源
- 数据爬取
- 完整代码
- 后序
前言
今天俺女朋友说她想换情侣头像了,但是没有啥可选的图片,我说你先别急,等我一会儿。
我冲冲冲赶紧爬取了2w张图片,随她想咋挑就咋挑。
部分图片展示
数据来源
url:https://www.woyaogexing.com/
情侣专区:https://www.woyaogexing.com/touxiang/qinglv/
数据爬取
F12
:查看网页源代码
经过定位发现这里面分了许多类,每一个分类对应一个图片组,点开图片链接后,进入里面,发现有许多头像。
分析源代码:
每一张图片都有一个超链接:
首先我们要爬取每一分类的链接,之后再对每一个分类下的图片下载下来。
可以看到,每个分类的url都在 <a href=" ">
所以这里我们首先需要正则提取出所有分类的url。
<a href="(.*?)" class="img"
代码如下:
# 爬取我要个性网中情侣头像
import requests
import re# 获取情侣头像分类链接
def getCategory(url):# 获取请求对象resp = requests.get(url)# 设置编码resp.encoding = resp.apparent_encoding# 打印访问请求状态码200print(resp.status_code)# 跨行匹配所有字符# pattern = re.compile('class="txList ".*?href="(.*?)"', re.S)pattern = re.compile('<a href="(.*?)" class="img"')# print(resp.text)# 打印分类的链接result = re.findall(pattern, resp.text)print('分类链接数:', len(result))print('分类链接:')print(result)return result
成功提取到所有分类的url
。
接下来就可以下载每一个分类中的所有图片了。
分析源代码
每一个分类下的图片链接都在 <img class="lazy" src=">
里面。
所以这里我们首先需要正则提取出所有图片的url。
<img class=“lazy” src="(.*?)"
def saveImg(links):num = 1for link in links:# 获取请求对象resp = requests.get('https://www.woyaogexing.com' + link)# 设置编码resp.encoding = resp.apparent_encoding# 打印访问请求状态码200print(resp.status_code)# 跨行匹配所有字符pattern = re.compile('<img class="lazy" src="(.*?)"')# print(resp.text)# 打印分类的链接imgLinks = re.findall(pattern, resp.text)print(imgLinks)
成功提取到所有图片的url。
接下来就可以下载所有图片了。
# 遍历图片的url
for imgLink in imgLinks:resp = requests.get('https:' + imgLink)with open('./headportrait/%d.jpg'%num, 'wb') as fin:fin.write(resp.content) # 写入图片二进制print('正在下载第%d图片'%num + "http:" + imgLink)num += 1
结果展示如下:
至此,图片已经成功下载至本地。代码提升和优化的空间还很大。我只是实现了基本的功能。
完整代码
# 爬取我要个性网中情侣头像
import requests
import re# https://www.woyaogexing.com/touxiang/qinglv/2021/1142219.html# 获取情侣头像分类链接
def getCategory(url):# 获取请求对象resp = requests.get(url)# 设置编码resp.encoding = resp.apparent_encoding# 打印访问请求状态码200print(resp.status_code)# 跨行匹配所有字符# pattern = re.compile('class="txList ".*?href="(.*?)"', re.S)pattern = re.compile('<a href="(.*?)" class="img"')# print(resp.text)# 打印分类的链接result = re.findall(pattern, resp.text)print('分类链接数:', len(result))print('分类链接:')print(result)return resultdef saveImg(links):num = 1for link in links:# 获取请求对象resp = requests.get('https://www.woyaogexing.com' + link)# 设置编码resp.encoding = resp.apparent_encoding# 打印访问请求状态码200print(resp.status_code)# 跨行匹配所有字符pattern = re.compile('<img class="lazy" src="(.*?)"')# print(resp.text)# 打印分类的链接imgLinks = re.findall(pattern, resp.text)print(imgLinks)# 遍历图片的urlfor imgLink in imgLinks:resp = requests.get('https:' + imgLink)with open('./headportrait/%d.jpg'%num, 'wb') as fin:fin.write(resp.content) # 写入图片二进制print('正在下载第%d图片'%num + "http:" + imgLink)num += 1if __name__ == "__main__":# 访问地址url = 'https://www.woyaogexing.com/touxiang/qinglv/'# 获取情侣头像各个分类的链接links = getCategory(url)saveImg(links)
后序
该内容还有很多,接下来可以遍历所有页,数据量很大,大约2w张图片,经过分析发现每一页的url类似,所以直接for循环重复以上代码就可以。
url:/touxiang/qinglv/index_num.html
注意:一定要拼接url,在前面加上’https://www.woyaogexing.com’
正则表达式:请参考 程序员必学的《正则表达式》
爬虫基础:请参考 小白必学的爬虫基础
Thanks♪(・ω・)ノ
感谢女朋友这多年的陪伴与支持!LOVE YL (* ̄︶ ̄)
加油!
努力!
感谢!
女朋友想换情侣头像了,怎么办?【2万张图片满足要求】相关推荐
- 情人节快到了,我部署了一套情侣头像小程序,并过审了
最近在学习如何部署微信小程序,目的就是像拥有一个属于自己的小程序 之前做的是一个微信公众号,靠自然的流量虽然也开通了流量主,但是每天收益就是那0.0几的,所有寻思看能不能做一个小程序出来.不会写小程序 ...
- python画情侣头像
最近想换头像了,网上找了一些,基本都运行不出来,所以自己动手来个简单一点的.话不多说,直接上代码: import jieba import wordcloud from imageio import ...
- 情人节挨打礼物-情侣头像自动生成
情侣头像自动生成 又到了一年一度的情人节了,这次献上一个情侣头像自动生成的工具,效果见上图(示例是本人qq头像,可以改为情侣的头像or照片) 代码本身在去年七夕的时候就完成了,之后因为忙于学习和外包工 ...
- 电脑账户头像怎么删掉_情侣头像丨情侣头像一男一女背影
情侣头像丨情侣头像一男一女背影 提示:点击放大图片,长按保存 人生三境界:一是独上高楼,望尽天涯路";二是衣带渐宽终无悔,为伊消得多少人看似没心没肺,却掩饰了心中的悲伤.我只拥有,一个人的寂 ...
- foobar2000隐藏桌面悬浮窗头像_多多情侣头像大全app-多多情侣头像大全软件v1.0.1...
多多情侣头像大全app,为小伙伴提供更有意思的情侣头像,涵盖更多的头像资源,提供卡通,萌宠,真人,明星等等头像资源,带给小伙伴更多的情头选择,帮助小伙伴选出最喜欢的情侣,满足小伙伴对于情头的需求,一键 ...
- 工作几年,想换技术方向,怎么办?
工作几年,想换技术方向? 有读者在微信问我:轩辕,我想从C++换成Java方向,有什么建议吗? 看到这个问题,我还是有资格回答的,我也经历过和他一样的疑惑,想着可能不少人工作几年后都想过更换技术方向的 ...
- 如何换wordpress头像
爱马仕同学潜心研究后精心制作的wordpress教程,以下内容转自爱马仕同学的博客^^ _________________________________ 上周末lisa同学反应我博客自动生成的个人头 ...
- Nature大调查显示 :全球1/4博士生想换导师
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文来源:新智元.Nature "如果可以再来一次,我将重 ...
- 选错导师误终身?Nature大调查显示 :全球1/4博士生想换导师
来源:新智元.Nature 转载自:科研大匠 "如果可以再来一次,我将重新选择导师." 在Nature的一次对全球6300名博士的调查中,有将近四分之一博士生这么说. Nature ...
最新文章
- 用太极拳讲分布式理论,真舒服!
- 27个人类基因被重新命名,只因Excel总把它们自动纠正成日期
- IIS+PHP+MYSQL安装配置
- 解决the NTP socket is in use, exiting问题
- 盘点三个JavaScript案例——实现限时秒杀、定时跳转、改变盒子大小
- 服务网格:Istio和AWS App Mesh
- 数字化经营支付3.0有哪些盈利机会
- 天天说常识推理,究竟常识是什么?
- 数学原来这么有趣,一组图唤醒你的思维!
- C语言-01基础语法
- 检测PYthon标识符合法性脚本
- Java中对数组的操作
- 解决Maven:com.oracle:ojdbc7-12.1.0.2.jar在pom文件中无法下载问题
- PHP微信H5支付Demo
- 华为U2000网管研究实录 (4) - 运行分析(系统监控客户端)
- 一个测试经理/测试主管/测试总监的工作总结
- 【HTML粒子流特效】(效果 + 代码)
- carsim2020.0的教程在“将HDWDZDPPV6 替换成 复制的HostID”这个步骤总是安装失败,解决这个问题,成功安装carsim2020.0的经验
- 计算机工程研究生美国专业排名,美国计算机研究生专业排名
- 15、PIC32系列-输入捕捉ICAP