Python爬取福利图要在中午,因为早晚会出事!我才存了2000文件夹

news2024/10/2 2:47:21

爱美之心人皆有之,我们爬取找寻这些漂亮小姐姐的图片并不是出于什么龌龊的目的。而是欣赏美好的东西总是会让人心情愉悦的,对于美丽事物的追求是人与生俱来的天性。

爬虫成果
在这里插入图片描述

发现很多想要学习Python却不知道该怎么下手的朋友,正好我这里整理了一些关于Python的学习资料,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等…有需要的朋友可以文末免费领取,希望能够帮助到大家!!!

在这里插入图片描述

当你运行代码后,文件夹就会越来越多,如果爬完的话会有2000多个文件夹,20000多张图片。不过会很耗时间,可以在最后的代码设置爬取页码范围。

本文目标

1.熟悉 Requests 库,Beautiful Soup 库
2.熟悉多线程爬取
3.送福利,妹子图
网站结构

图一:

在这里插入图片描述

可以看到是一组一组的套图,点击任何一组图片会进入到详情界面,如图二所示

图二:
在这里插入图片描述
在这里插入图片描述

可以看到图片是依次排开的,一般会有十张左右的图片。

实现思路

看了界面的结构,那么我们的思路就有了。

1.构造 url 链接,去请求图一所示的套图列表界面,拿到每一个页面中的套图列表。

2.分别进入每个套图中去,下载相应的图片。

代码说明

1.下载界面的函数,利用 Requests 很方便实现。

def download_page(url):
‘’’
用于下载页面
‘’’
headers = {“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0”}
r = requests.get(url, headers=headers)
r.encoding = ‘gb2312’
return r.text

2、获取图一所示的所有套图列表,函数中 link 表示套图的链接,text表示套图的名字

def get_pic_list(html):
‘’’
获取每个页面的套图列表,之后循环调用get_pic函数获取图片
‘’’
soup = BeautifulSoup(html, ‘html.parser’)
pic_list = soup.find_all(‘li’, class_=‘wp-item’)
for i in pic_list:
a_tag = i.find(‘h3’, class_=‘tit’).find(‘a’)
link = a_tag.get(‘href’) # 套图链接
text = a_tag.get_text() # 套图名字
get_pic(link, text)

3、传入上一步中获取到的套图链接及套图名字,获取每组套图里面的图片,并保存,我在代码中注释了。

def get_pic(link, text):
‘’’
获取当前页面的图片,并保存
‘’’
html = download_page(link) # 下载界面
soup = BeautifulSoup(html, ‘html.parser’)
pic_list = soup.find(‘div’, id=“picture”).find_all(‘img’) # 找到界面所有图片
headers = {“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0”}
create_dir(‘pic/{}’.format(text))
for i in pic_list:
pic_link = i.get(‘src’) # 拿到图片的具体 url
r = requests.get(pic_link, headers=headers) # 下载图片,之后保存到文件
with open(‘pic/{}/{}’.format(text, pic_link.split(‘/’)[-1]), ‘wb’) as f:
f.write(r.content)
time.sleep(1)

完整代码

完整代码如下,包括了创建文件夹,利用多线程爬取,我设置的是5个线程,可以根据自己机器自己来设置一下。

import requests
import os
import time
import threading
from bs4 import BeautifulSoup
def download_page(url):
‘’’
用于下载页面
‘’’
headers = {“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0”}
r = requests.get(url, headers=headers)
r.encoding = ‘gb2312’
return r.text
def get_pic_list(html):
‘’’
获取每个页面的套图列表,之后循环调用get_pic函数获取图片
‘’’
soup = BeautifulSoup(html, ‘html.parser’)
pic_list = soup.find_all(‘li’, class_=‘wp-item’)
for i in pic_list:
a_tag = i.find(‘h3’, class_=‘tit’).find(‘a’)
link = a_tag.get(‘href’)
text = a_tag.get_text()
get_pic(link, text)
def get_pic(link, text):
‘’’
获取当前页面的图片,并保存
‘’’
html = download_page(link) # 下载界面
soup = BeautifulSoup(html, ‘html.parser’)
pic_list = soup.find(‘div’, id=“picture”).find_all(‘img’) # 找到界面所有图片
headers = {“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0”}
create_dir(‘pic/{}’.format(text))
for i in pic_list:
pic_link = i.get(‘src’) # 拿到图片的具体 url
r = requests.get(pic_link, headers=headers) # 下载图片,之后保存到文件
with open(‘pic/{}/{}’.format(text, pic_link.split(‘/’)[-1]), ‘wb’) as f:
f.write(r.content)
time.sleep(1) # 休息一下,不要给网站太大压力,避免被封
def create_dir(name):
if not os.path.exists(name):
os.makedirs(name)
def execute(url):
page_html = download_page(url)
get_pic_list(page_html)
def main():
create_dir(‘pic’)
queue = [i for i in range(1, 72)] # 构造 url 链接 页码。
threads = []
while len(queue) > 0:
for thread in threads:
if not thread.is_alive():
threads.remove(thread)
while len(threads) < 5 and len(queue) > 0: # 最大线程数设置为 5
cur_page = queue.pop(0)
url = ‘http://meizitu.com/a/more_{}.html’.format(cur_page)
thread = threading.Thread(target=execute, args=(url,))
thread.setDaemon(True)
thread.start()
print(‘{}正在下载{}页’.format(threading.current_thread().name, cur_page))
threads.append(thread)
if name == ‘main’:
main()

最后

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!(文末领取

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。(文末领读者福利
在这里插入图片描述
在这里插入图片描述

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利
在这里插入图片描述

五、Python练习题

检查学习结果。
在这里插入图片描述

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。 (文末领取哦
在这里插入图片描述
在这里插入图片描述

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/95346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于场景的数据集------明厨亮灶数据集

为了和各位开发爱好者深入合作交流&#xff0c;特此准备分批次开放数据集拱大家交流学士研究使用&#xff0c;整理的非常细腻&#xff0c;有些是专业队伍标注的&#xff0c;主要是菲律宾那边的团队进行标注的。依据众多算法搭建的算法平台主体算法包括 人脸识别&#xff0c;人…

Vue3-ElemenPlu,全栈开发后台系统-JWT方案讲解第三章-Koa架构设计接口方面实现mongdb安装配置工具函数的封装前台首页实现

第三章-Koa架构设计 #!/usr/bin/env node/*** Module dependencies.*/var app = require(../app); var debug = require(debug)

公司新来的00后真是卷王,工作没两年,跳槽到我们公司起薪18K都快接近我了

都说00后躺平了&#xff0c;但是有一说一&#xff0c;该卷的还是卷。这不&#xff0c;前段时间我们公司来了个00后&#xff0c;工作没两年&#xff0c;跳槽到我们公司起薪18K&#xff0c;都快接近我了。后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。 …

【LVGL学习笔记】(一)环境搭建

LVGL全程LittleVGL&#xff0c;是一个轻量化的&#xff0c;开源的&#xff0c;用于嵌入式GUI设计的图形库。并且配合LVGL模拟器&#xff0c;可以在电脑对界面进行编辑显示&#xff0c;测试通过后再移植进嵌入式设备中&#xff0c;可以高效地进行开发。 一.嵌入式设备的移植 L…

开发Java Web项目基础储备

大家好&#xff0c;我是邵奈一&#xff0c;一个不务正业的程序猿、正儿八经的斜杠青年。 1、世人称我为&#xff1a;被代码耽误的诗人、没天赋的书法家、五音不全的歌手、专业跑龙套演员、不合格的运动员… 2、这几年&#xff0c;我整理了很多IT技术相关的教程给大家&#xff0…

互联网寒冬下奇葩公司行为艺术一览!你就是想笑死我继承我的代码

干货不少&#xff0c;有图有真相&#xff0c;大家慢慢看下去&#xff01; 既然创业&#xff0c;我为什么不自己当老板&#xff0c;要去给你当合伙人&#xff1f;是为了那1K-2K的高薪吗&#xff1f; 这招的不是高级工程师与合伙人&#xff0c;招的怕不是个傻子&#xff01; 有…

[激光原理与应用-58]:激光器 - 光学 - 常见光学镜片的特性

目录 一、纯度 二、透明度与透光率 三、均匀度 四、折射率 五、色散率 六、反射率 七、透光率 八、光线吸收率 一、纯度 光学纯度又称旋光纯度。 二、透明度与透光率 透光率&#xff0c;表示光线透过介质的能力&#xff0c;是透过透明或半透明体的光通量与其入射光…

域名停靠(域名抢注的几种形式)

域名停靠,又叫域名停放。简单来说,就是将具有一定流量的优质域名交给域名停靠服务商管理,让他们在你的域名上面投放广告。 “域名停靠”来自于英文Domain Name Parking&#xff0c;简称DNParking&#xff0c;也称域名停放。如果您有一个理想的域名或者带有流量&#xff08;即&…

杂七杂八的网络安全知识

杂七杂八的网络安全知识 博客链接&#xff1a;https://www.blog.23day.site/articles/81 一、信息安全概述 1.信息与信息安全 信息与信息技术 信息奠基人&#xff1a;香农&#xff1a;信息是用来消除随机不确定性的东西 信息的定义&#xff1a;信息是有意义的数据&#xff…

python采集付费论文批量下载 并保存到文档,毕设论文再也不愁......

嗨害大家好鸭&#xff01; 我是小熊猫鸭~ 大家是不是在写毕业论文的时候 需要参考某一段的内容 要用到复制粘贴&#xff0c;但是吧&#xff0c;某文库就需要付费&#xff0c; 就老难受了… 我们今天就来解决这个"老难受" 环境使用&#xff1a; python 3.8 pych…

2021年全球区块链投融资概况 美国融资量最多 数字资产相关领域依旧火热

据不完全统计&#xff0c;2021年&#xff0c;全球区块链产业共发生1812笔融资事件&#xff0c;从月度投资量来看&#xff0c;3月和4月投资量均达200笔以上&#xff0c;3月数量最多为239笔&#xff0c;其次是4月数量为214笔。1月和2月则获投量最少&#xff0c;均不达100笔&#…

怎么写一个树形穿梭框

图片懒加载基本原理 所谓图片懒加载&#xff0c;就是需要展示图片的时候再加载&#xff0c;当图片没有进入我们的视觉范围内的时候&#xff0c;图片还没有加载&#xff0c;只用一个占位符或者 loading 图片替代。当我们滚动页面时&#xff0c;占位符或者 loading 图片进入到我…

[附源码]Python计算机毕业设计Django绿色生活交流社区网站

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

部门来了个测试开发,听说是培训生,上来一顿操作给我看呆了...

&#x1f4cc; 博客主页&#xff1a; 程序员二黑 &#x1f4cc; 专注于软件测试领域相关技术实践和思考&#xff0c;持续分享自动化软件测试开发干货知识&#xff01; &#x1f4cc; 公号同名&#xff0c;欢迎加入我的测试交流群&#xff0c;我们一起交流学习&#xff01; 前段…

大数据呀大数据

大数据 啥是大数据? 我自己的一些经历–>>在做代码开发之前,一直觉得大数据这件事是高大上的一门学问,门槛很高,而且我上大学的时候这个词才刚刚在众多互联网记住中展露头角; 我的个人经历–>> 我上大学时那时候安卓的版本才到安卓4.4,在智能手机出来普及以前,各…

STM32 10个工程实战前言

从今年2022年元旦开通博客到现在基本接近一年了&#xff0c;真的会感到感觉时间飞逝&#xff0c;尤其当你全身心地投入一件工作上时&#xff0c;在FPGA基础篇和FPGA 20个经理例程篇后&#xff0c;又准备了STM32基础篇和STM32 10个工程实战篇&#xff0c;前两者即将收尾&#xf…

外汇天眼:欧洲央行加息50基点!加息的步伐将会放缓

欧洲央行(European Central Bank)在周四的会议上选择小幅加息&#xff0c;将基准利率从1.5%上调至2%。而其主要再融资操作和边际贷款工具的借贷成本分别升至2.50%和2.75%。 它还表示&#xff0c;从2023年3月初开始&#xff0c;到2023年第二季度末&#xff0c;它将开始平均每月减…

付费视频被人薅走?了解一下hls视频加密

前言 作者现在主要负责的项目是通过音视频等课程提高教师职业能力的&#xff0c;说白了就是给老师卖课赚钱。大家都知道知识付费现在还是很火的&#xff0c;既然是要付费的知识&#xff0c;就肯定有人想白嫖&#xff0c;直接去下载课程里面音视频。业界就有很多工具&#xff0…

世界杯观赛调研公布: Z世代消费者首选海信电视

2022世界杯决赛在即&#xff0c;作为观赛主体的Z世代迎来了四年一度的足球狂欢季。12月12日&#xff0c;市场研究机构千趣GKURC&#xff08;关键用户调查研究中心&#xff09;发布了《Z世代2022世界杯观赛和消费行为特征》调查报告&#xff08;以下简称报告&#xff09;。 报告…

图解设计模式:Teamplate Method 模板方法模式 由子类实现具体内容的模式

前言 &#x1f4e3; &#x1f4e3; &#x1f4e3; &#x1f4e2;&#x1f4e2;&#x1f4e2; ☀️☀️点开就是缘分认识一下&#xff0c;我是小冷。是一个兴趣驱动自学练习两年半的的Java工程师。 &#x1f4d2; 一位十分喜欢将知识分享出来的Java博主⭐️⭐️⭐️&#xff0c;…