python爬取表情包

2023-11-01

效果图:

 源代码(说明就在注释里):

import os
import requests
from bs4 import BeautifulSoup

if not os.path.exists('./images/'):
    os.mkdir('./images/')

headers = {
    'User-Agent':
        'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
}


def get(pos):
    url = f'https://fabiaoqing.com/biaoqing/lists/page/{pos}.html'
    response = requests.get(url, headers=headers).text

    '''
    lxml: html解析库,因为python和html两者没有关系
    python没有办法直接控制html代码
    我们就需要使用lxml这个库将html代码转成python对象
        需要大家去下载 pip install lxml
    '''
    soup = BeautifulSoup(response, 'lxml')
    img_list = soup.find_all('img', class_='ui image lazy')
    for img in img_list:
        img_url = img['data-original']
        img_title = img['title']
        print(img_url, img_title)
        try:
            with open('./images/' + img_title + os.path.splitext(img_url)[-1], 'wb') as f:
                '''
                因为一张图片是二进制数据
                    如果我们使用text文本形式返回
                    会对文件造成破坏
                    
                    使用content去返回原始数据
                    
                '''
                image = requests.get(img_url, headers=headers).content
                # 写入二进制数据 image这个变量是存储requests返回的二进制数据的
                f.write(image)
                print('保存成功:', img_title)
        except (PermissionError, IOError, Exception):
            pass


if __name__ == '__main__':
    a = int(input("几页?(1-280)"))
    if a > 280:
        raise Exception("YOU ARE A SB!!!!!!")
    for i in range(1, a + 1):
        get(i)
        print(f"已完成第{i}页")

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python爬取表情包 的相关文章

  • 使用 Python 编辑 RTF 文件

    也许这是一个愚蠢的问题 但我不明白 所以道歉 我有一个 RTF 文档 我想更改它 例如 有一个表 我想复制一行并以面向对象的方式更改代码中第二行中的文本 我认为 pyparsing 应该是可行的方法 但我摆弄了几个小时但没有明白 我没有提供
  • 为什么我的混淆矩阵只返回一个数字?

    我正在做二元分类 每当我的预测等于事实时 我发现sklearn metrics confusion matrix返回单个值 难道没有问题吗 from sklearn metrics import confusion matrix print
  • 如何为未捕获的异常处理程序编写单元测试

    我有一个函数可以捕获uncaught例外情况 如下 有没有办法编写一个单元测试来执行uncaught exception handler 功能正常 但测试正常退出 import logging def config logger logge
  • 如何在python中附加两个字节?

    说你有b x04 and b x00 你如何将它们组合起来b x0400 使用Python 3 gt gt gt a b x04 gt gt gt b b x00 gt gt gt a b b x04 x00
  • 检查 python 中命令行参数的数量

    我是蟒蛇新手 还是把脚弄湿了 我正在尝试做这样的事情 import sys if len sys argv lt 3 or lt len sys argv gt 3 print This script will compare two fi
  • 如何在 Python 中的函数入口、内部和退出处进行日志记录

    我希望能够使用 Python 日志记录工具在我的代码中进行简单且一致的日志记录 我能够执行以下操作 我希望所有现有 未来的模块和函数都有 输入 和 完成 日志消息 我不想添加相同的代码片段来定义日志记录参数 如下所示don t want t
  • 在 Mac OSX 上从 Python 3.6 运行 wine 命令

    我正在尝试用 Python 编写一个打开的脚本wine然后发送代码到wine终端打开一个 exe程序 这 exe程序也是命令驱动的 我可以打开wine 但我无法进一步 import shlex subprocess line usr bin
  • 如何在 Django Rest 框架中编写“删除”操作的测试

    我正在为 Django Rest Framework API 编写测试 我一直在测试 删除 我对 创建 的测试工作正常 这是我的测试代码 import json from django urls import reverse from re
  • PIL.Image.open和tf.image.decode_jpeg返回值的区别

    我使用 PIL Image open 和 tf image decode jpeg 将图像文件解析为数组 但发现PIL Image open 中的像素值与tf image decode jpeg不一样 为什么会出现这种情况 Thanks 代
  • NumPy 相当于 Keras 函数 utils.to_categorical

    我有一个使用 Keras 进行机器学习的 Python 脚本 我正在构建 X 和 Y 它们分别是特征和标签 标签的构建方式如下 def main depth 10 nclass 101 skip True output True video
  • pygame:使用 sprite.RenderPlain 绘制精灵组的顺序

    我有一个精灵组 需要按一定的顺序绘制 以便其精灵按应有的方式重叠 然而 即使使用运算符模块函数 sorted self sprites key attrgetter y x 对组进行排序 顺序也是错误的 我该如何解决这个问题 直截了当地说
  • 如何在 Seaborn 中的热图轴上表达类

    我使用 Seaborn 创建了一个非常简单的热图 显示相似性方阵 这是我使用的一行代码 sns heatmap sim mat linewidths 0 square True robust True sns plt show 这是我得到的
  • 无法在 PyCharm 版本 9.3.3 中安装 NumPy。 Python版本3.8.2

    在 PyCharm 中安装 NumPy 时出错 尝试安装 Microsoft Visual C 14 0 还是行不通 NumPy 正在通过命令安装pip3 install numpy在 cmd 终端中 但是当尝试将其安装在 PyCharm
  • 将字符串中的随机字符转换为大写

    我尝试随机附加文本字符串 这样就不只是有像这样的输出 gt gt gt david 我最终会得到类似的东西 gt gt gt DaViD gt gt gt dAviD 我现在的代码是这样的 import random import stri
  • PyInstaller“ValueError:源代码字符串不能包含空字节”

    我得到了一个ValueError source code string cannot contain null bytes执行命令时pyinstaller main py在具有和不具有管理员权限的cmd中 Traceback most re
  • 在 numpy 中连接维度

    我有x 1 2 3 4 5 6 7 8 9 10 11 12 shape 2 2 3 I want 1 2 3 4 5 6 7 8 9 10 11 12 shape 2 6 也就是说 我想连接中间维度的所有项目 在这种特殊情况下我可以得到这
  • 寻找完美的正方形

    我有这个Python代码 def sqrt x ans 0 if x gt 0 while ans ans lt x ans ans 1 if ans ans x print x is not a perfect square return
  • 高效创建抗锯齿圆形蒙版

    我正在尝试创建抗锯齿 加权而不是布尔 圆形掩模 以制作用于卷积的圆形内核 radius 3 no of pixels to be 1 on either side of the center pixel shall be decimal a
  • 将时间添加到日期时间

    我有一个像这样的日期字符串 然后使用strptime 所以就像这样 my time datetime datetime strptime 07 05 15 m d Y 现在我想添加 23 小时 59 分钟my time 我努力了 timed
  • Python 中的 Unix cat 函数 (cat * > merged.txt)? [复制]

    这个问题在这里已经有答案了 一旦建立了目录 有没有办法在Python中使用Unix中的cat函数或类似的函数 我想将 files 1 3 合并到 merged txt 我通常会在 Unix 中找到该目录 然后运行 cat gt merged

随机推荐

  • Linux进程控制编程实验_02

    任务1 编写一个进程创建实验程序task51 c 创建如图所示的进程族亲结构 其中p1是程序启动时由加载程序创建第一个进程 各进程的输出信息分别如下 p1 I am father process p11 当前时间是 lt 年 月 日 时 分
  • Eclipse CDT c++支持C++11

    最近要在Linux 环境下面写一些代码 需要支持C 11 可是CDT 不认识C 11的特性 看了很多网上的配置资料 各种版本下面还是不一样 Eclipse 16 04 CDT 9 4 GCC 5 4 首先创建一个C project 写点C
  • mysql知识系列:用命令行远程登录Mysql

    参考 命令行登录Mysql 远程登录Mysql的方法 总结 mysql uxxx pxxx hxxx xxx xxx xxx P3306 xxx 为替换的内容
  • Python 基础合集8:类的继承和多态

    一 前言 本小节主要梳理类的继承和多态 继承包含三种形式 单继承 多层继承 多重继承 环境说明 Python 3 6 windows11 64位 二 继承 基础语法如下 class B A 表示的含义就是B 继承A A 是B 的父类 cla
  • 把数据插入到数据库的两种方法

    把表单中的数据插入到数据库中有两种方法 1 直接使用sql语句的 优点 速度快 不耗资源 缺点 不能传递太长的字段内容 字段比较多时不易排错 推荐有经验的编程者优先考虑 具体操作 假设表单中有以下字段 username password s
  • 阿里云免费试用服务器,怎么申请

    免费试用也要分个人用户和企业用户 个人用户选择比较少 目前只有下面这个配置 免费试用3个月 企业用户有4款机型 一 参与对象 满足以下全部条件的阿里云用户 1 阿里云注册会员用户 可以联系我注册账号 这样试用以后如果要新购也可以有优惠 2
  • 微信小程序调用天气信息

    在微信小程序中调用天气信息 下面是示例代码 wx request url example php 仅为示例 并非真实的接口地址 data x y header content type application json 默认值 succes
  • jdk和tomcat的关系

    1 什么是jvm 我们从操作系统的层面来理解 jvm其实就是操作系统中的一个进程 既然是一个进程 那么我们很容易的可以通过任务管理器来查看 假设此时我们启动myeclipse myeclipse其实就是用java语言编写的一个软件 他的运行
  • Java定时任务调度工具详解之Quartz篇(中级)一:浅谈JobExecutionContext&JobDatai&浅谈Trigger

    概要 OpenSymphony提供的强大的开源任务调度框架 官网 http www quartz scheduler org 纯java实现 精细控制排程 特点 强大的调度功能 灵活的应用方式 分布式和集群能力 主要用到的设计模式 Buil
  • 微信小程序+java后台+云服务器开发学习记录

    仅作为个人学习记录 1 使用了iview辅助开发 2 开发后台时 访问jsp和servlet突然404 检查以后发现8080端口被以前没清理干净的java程序占用了 到任务管理器里把java exe干掉以后重启idea一切恢复正常 困扰了我
  • 100流明相当于多少w_lx和瓦数换算(1lx等于多少w)

    你好 别想太多了 这个没得换算的所谓能换算的 都是已知光效的灯 就是每瓦多少流明的 然后再通过受照面积换算 希望对你有所帮助 望采纳 白炽灯的瓦数 光照强度 10W 65lm 15W 101lm 25W 198lm 40W 340lm 60
  • 身边那些百万年薪的程序员朋友

    大家好 我是寂小桦 争取每周在这里给大家分享自己作为独立开发者经历以及身边程序员朋友的趣事 百万年薪是个永远说不烂的话题 就在最近的一年 仿佛雨后春笋一般 身边开始涌现出很多年薪百万的程序员朋友 清一色集中在腾讯阿里京东头条这些公司 其中一
  • 数字电路的时钟(3)-- 抖动

    引言 抖动是时钟信号边沿事件的时间点集合相对于其理想值的离散时序变量 时钟信号中的抖动通常是由系统中的噪声或其他干扰导致的 具体因素包括热噪声 电源变化 负载条件 器件噪声以及相邻电路耦合的干扰等 抖动类型 时钟信号抖动定义有多种主要是 周
  • IDEA的Junit安装(添加jar包)

    1 安装junit插件 1 打开IDEA 点击文件 选择设置 setting 2 选择Plugins gt 点击Browse repositories 3 在搜索框中搜索Junit gt 找到Junit Generator V2 0点击 g
  • 我所理解的设计模式(C++实现)——适配器模式(Adapter Pattern)

    解决的问题 适配器模式把一个类的接口变换成客户端所期待的另一种接口 从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作 比如说我的hp笔记本 美国产品 人家美国的电压是110V的 而我们中国的电压是220V 要在中国能使用 必须找个
  • java内存管理(堆、栈、方法区)

    java内存管理 简介 首先我们要了解我们为什么要学习java虚拟机的内存管理 不是java的gc垃圾回收机制都帮我们释放了内存了吗 但是在写程序的过程中却也往往因为不懂内存管理而造成了一些不容易察觉到的内存问题 并且在内存问题出现的时候
  • Android Activity调用Dialog后的返回值方法

    这个例子只是简单的返回一个String 而在实际需要时 可能需要在DIalog或非Activity 如ListView中的Adapter 中做复杂的操作后 返回值至主Activity 例如本人最近在做一个ListView中的Adapter包
  • 软件工程知识体系

    三个知识体系 知识体系 设计知识体系 开发知识体系 业务知识体系 业务知识体系 是指需要导入管理信息系统的客户所从事行业的业务知识 软件实现的过程是从理解客户业务和相关知识开始的 理解和掌握客户业务知识是理解客户需求和优化客户业务的基础 个
  • 使用vue+echarts绘制图表

    五步绘制echarts图表 目录 五步绘制echarts图表 第一步 main js中添加如下代码 第二步 template中添加如下代码 第三步 methods中写一个绘制折线图的函数 第四步 mounted中调用函数 第五步 css中添
  • python爬取表情包

    效果图 源代码 说明就在注释里 import os import requests from bs4 import BeautifulSoup if not os path exists images os mkdir images hea