前言

大家早好、午好、晚好吖~

环境使用:

  • Python 3.8
  • Pycharm 2021.2版本

模块使用:

  • import requests >>> pip install requests
  • import re

爬虫的基本套路

一. 数据来源分析

  1. 明确自己需求
  2. url 唯一资源定位符 <图片 视频 音频 都是唯一url地址>

二. 代码实现步骤

  1. 发送请求, 用python代码模拟浏览器对于url地址发送请求
  2. 获取数据, 获取服务器返回响应数据
  3. 解析数据, 提取我们想要图片url以及图片的标题
  4. 保存数据, 图片内容保存本地文件夹

代码

import requests  # 数据请求模块
import re  # 正则表达式
import time  # 时间模块
import concurrent.futuresdef get_response(html_url):"""发送请求函数:param html_url: 形式参数, 不具备实际意义:return:某些你不加伪装,也可以得到数据 <网站反爬>headers 字典数据类型,Cookie 用户信息, 常用于检测是否有登陆账号  <需要你登陆账号之后才能看到数据>User-Agent: 用户代理 表示浏览器基本身份标识"""headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36'}response = requests.get(url=html_url, headers=headers)return response  # <Response [200]> 响应对象, 200表示状态码 请求成功
源码、解答、教程加Q裙:832157862def get_img_info(html_url):"""获取图片信息函数:param html_url: 网址:return:"""response = get_response(html_url=html_url)  # 调用函数# print(response.text)# <a href=".*?" title="(.*?)">  () 表示精确匹配, 我们想要数据内容  .*? 通配符 可以匹配任意字符 除了(\n换行符)# 正则表达式就是复制粘贴 想要的数据用(.*?)表示就可以了title_list = re.findall('<a href=".*?" title="(.*?)">', response.text)url_list = re.findall('<img class="ui image lazy" data-original="(.*?)"', response.text)zip_data = zip(title_list, url_list)  # zip() 内置函数, 可以把两个列表数据打包放到一起返回zip对象return zip_data  # <zip object at 0x000001B6B38A8900>源码、解答、教程加Q裙:832157862
def save(title, img_url):"""保存数据:param title: 图片标题:param img_url: 图片网址:return:"""# 保存数据, 一定有数据title = re.sub(r'[\/:*?"<>|\n]', '', title)img_content = get_response(html_url=img_url).content  # 调用前面定义好的发送请求函数 .content 获取图片二进制数据内容with open('img\\' + title + '.' + img_url.split('.')[-1], mode='wb') as f:f.write(img_content)print(title, '保存成功')def main(link):"""主函数, 整合上面所有功能:param link::return:"""zip_data = get_img_info(html_url=link)for title, img_url in zip_data:save(title, img_url)源码、解答、教程加Q裙:832157862
if __name__ == '__main__':# 采集多页数据内容, 可以分析请求url地址变化规律# 爬虫思路可以通用, 但是代码是不能通用# 每个网站数据结构不一样, 代码写法就不一样time_1 = time.time()exe = concurrent.futures.ProcessPoolExecutor(max_workers=7)for page in range(1, 201):url = f'https://fabiaoqing.com/biaoqing/lists/page/{page}.html'exe.submit(main, url)exe.shutdown()time_2 = time.time()use_time = int(time_2) - int(time_1)print('总计耗时: ', use_time)#  单线程 采集20页数据 总计耗时:  71
#  多线程 采集20页数据 总计耗时:  14
#  青灯讲过爬虫 100多个案例 不同平台 网站 <学了不用担心 不会写代码 实践案例管饱...>

尾语

好了,我的这篇文章写到这里就结束啦!

有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

python带你采集各种表情包,做群里最靓的崽~相关推荐

  1. 【python实战】批量采集表情包,群里发表情你绝对独领风骚~

    本次目的: python爬取海量表情包 亮点: 系统分析目标网页 html标签数据解析方法 海量图片数据一键保存 环境介绍: python 3.8 pycharm 模块使用: requests > ...

  2. 使用python的turtle库画表情包

    使用python的turtle库画表情包 话不多说,先上效果图,然后是代码 代码如下: import turtleturtle.penup() turtle.goto(-80,20) turtle.c ...

  3. Python爬虫 | 斗图网表情包抓取

    Python爬虫 | 斗图网表情包抓取 1.数据来源分析 2.制作div_list 3.发起请求 4.保存图片 5.批量获取 6.完整代码 声明 1.数据来源分析   打开斗图吧的主页,发现网址非常有 ...

  4. python从入门到入土表情包-Python开发个人专属表情包网站,表情在手,天下我有...

    "表情包"是一种利用图片来表示感情的一种方式.表情包是在社交软件活跃之后,形成的一种流行文化,表情包流行于互联网上面,基本人人都会发表情. 曾经你是否也有过找不到表情包去应对别人的 ...

  5. python 脚本下载bilibili右上角表情包

    python 脚本下载bilibili右上角表情包 B站是个十分有趣的地方,今天就来下载一下B站官网的表情包图片. 事实上,B站的表情包全部在一个json文件中,只要请求即可.项目地址github主页 ...

  6. Python新手实战爬取表情包

    Python新手实战爬取表情包 前言 如有错误, 还望大佬们斧正. 谢谢! 我是一个Python小白. 如有错误还请见谅. 本文是Python 爬取表情包 适合新手. 代码还有很多可以改进的地方. 本 ...

  7. Python什么都能做(二)用Python画微信新出的表情包

    11月18日,微信团队又推出了六张全新的小表情,可爱而有趣的表情瞬间火爆了大家的微信好友圈,也毫无疑问的登上了微博热搜榜的首位.各大明星纷纷效仿表情包,引发了一波全民的娱乐小高潮. 腾讯推出的新表情包 ...

  8. python做动态表情包下载_用 Python 开发一个【GIF表情包制作神器】

    之前小帅b写过这样一篇教程然后,好多人表示:虽然存了很多表情包但似乎还不是很过瘾因为它不可以自己来定制我们可不可以根据一些表情素材然后自己制作专属表情包呢像这样 本来小帅b想自己实现一个表情包制作器后 ...

  9. python制作会动的表情包_只要3步,菜鸟也能用Python做个逗逼的表情包

    先来个小姐姐表情包,一睹为快 表情包的使用,已经成为我们日常生活中必不可少的一个重要的交流工具,但是让人苦恼的是,表情包只能通过收藏他人的或者是从官网上获取成套的表情包,无法制作自己的表情包. 今天, ...

最新文章

  1. Centos6.4 + PHP5.5.11 + Mysql5.6.16 + Tnginx2.02 + Memcached1.4.17 + Redis2.2
  2. android 点击退出账号,Android应用退出登录的实现方法
  3. oracle+restore+pfile,RAC(11gR2) OCR BACKUP RESTORE
  4. mysql 全局select授权_MySQL的用户设置与授权
  5. lumion自动保存_LUMION吊打MAX,轻松玩转规划渲染!
  6. tornado学习笔记day08-tornado中的异步
  7. image加载图片 ui unity_【Unity游戏客户端框架搭建】四、资源管理之理论篇
  8. python函数库_ctypes --- Python 的外部函数库 — Python 3.9.0 文档
  9. linux面试题(填空部分)
  10. Oracle PLSQL语句实例
  11. UiPath安装pdf
  12. 图解CSS3----盒子模型
  13. 寻找可接入正版音乐曲库的音乐API?来了解HIFIVE音乐开放平台!
  14. java打印特殊符号_Java Poi 在Excel中输出特殊符号的实现方法
  15. freemarker 数组转字符串_freemarker中的split字符串分割
  16. 不会吧?!新版本longhorn部署需要k8s.gcr.io镜像?
  17. 多线程-RGB_LED闪烁灯
  18. 数据结构_Java_基于 线性表-单链表的初始化、逆序、去重、非递减序列的合并(开辟新链表先整体插入一个链表全部元素,再遍历另外一个链表寻找合适位置插入 、开辟新链表实现舍弃原链表)等操作实现
  19. 明朝首辅/太师,辅佐明朝四代国之重臣杨士奇后世传人在松滋
  20. MySQL BETWEEN 语法

热门文章

  1. LeaFlet结合leaflet-dvf实现数据可视化
  2. 2020高压电工证考试及高压电工模拟考试软件
  3. html段落中加空格,HTML 段落
  4. C语言案例_贪吃蛇游戏
  5. java零基础自学教程
  6. RestFul风格传参
  7. GIS建筑,道路,地类,道路,水域矢量数据获取
  8. Mysql 查询 select
  9. golang之基础库
  10. 拉曼光谱仪的原理与应用——TFN 7G F660手持式拉曼光谱识别仪