:smiley_cat: 开头先BB两句

一个个手动保存图片吗?

人生苦短,我用Python

下面是两个充满表情包的网址:

:rocket:斗图啦

:rocket:斗图网

爬取表情包,用到的关键代码,拿出来简单说一下。

毕竟,我对 Python 也不是很熟,用到什么就马克记录一下下。

:crown: 大体思路:

requests.get()
爬取
保存

:gift: 知识点:

1.requests库

requests.get()

发送get请求

安装

pip install requests

引入

import requests

requests带请求参数的get请求

url = 'http://www.bbsnet.com/biaoqingbao'
res = requests.get(url)

修改编码方式:

response.content.deocde(“utf-8”)

html = res.content.decode(('utf-8'))

2.lxml模块etree类的使用

安装

pip install lxml

引入

from lxml import etree

利用 etree.HTML( )将 html字符串转化为element对象

tree = etree.HTML(html)

element对象的xpath方法

Element对象具有xpath的方法,返回结果的列表,能够接受bytes类型的数据和str类型的数据

xpath 全称:XML Path Language是一种小型的查询语言

是一门在XML文档中查找信息的语言

XPath的优点:

可在XML中查找信息

支持HTML的查找

可通过元素和属性进行导航

根据爬取的网页数据,分析所知,表情包图片在 id 为 post_container 的列表里面,通过 xpath 可以精确查到表情包的位置。

li_list = tree.xpath('//ul[@id="post_container"]/li')

3.Python "{}.format()" 输出格式化方法

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

实例:

"{0} {1}".format("hello", "world")  # 设置指定位置

也可以设置参数:

print("网站名:{name}, 地址 {url}".format(name="哔哩哔哩", url="https://www.bilibili.com/"))

4.with open() as f:用法

python中open() 函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。

with 关键字

可以在语句结束后,关闭文件流。不用with关键字,文件会被python垃圾回收关闭。不用with,记得f.close()

常见用法:

with open(r'filename.txt') as f:for l in f:l = json.loads(l)  #文件的读操作with open('Hello.txt', 'w') as f:f.write('hello world')  #文件的写操作

标识符

with open('Hello.txt', 'w') as f: #为标识符

常用标识符的含义

r:  以只读方式打开文件。
rb: 以二进制格式打开一个文件用于只读。
r+: 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+:以二进制格式打开一个文件用于读写。
w:  打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb:  以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+:  打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab:  以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+:  打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

f的方法属性:

file.read([size])   #将文件数据作为字符串返回,可选参数size控制读取的字节数
file.readlines([size])   #返回文件中行内容的列表,size参数可选
file.write(str)   #将字符串写入文件
file.writelines(strings)   #将字符串序列写入文件
file.close()   #关闭文件
file.closed    #表示文件已经被关闭,否则为Falsefile.mode  #Access文件打开时使用的访问模式
file.encoding  #文件所使用的编码
file.name  #文件名
file.newlines  #未读取到行分隔符时为None,只有一种行分隔符时为一个字符串,当文件有多种类型的行结束符时,则为一个包含所有当前所遇到的行结束的列表
file.softspace  #为0表示在输出一数据后,要加上一个空格符,1表示不加。这个属性一般程序员用不着,由程序内部使用

完整代码,点击详细信息查看

import requests
from lxml import etree
class EmojiSpider(object):# 第一种方法__init__()方法是一种特殊的方法,# 被称为类的构造函数或初始化方法,# 当创建了这个类的实例时就会调用该方法def __init__(self):self.header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'}self.name = 1def get(self, url):res = requests.get(url, headers=self.header)html = res.content.decode(('utf-8'))return  htmldef parse_picture(self, html):tree = etree.HTML(html)li_list = tree.xpath('//ul[@id="post_container"]/li')img_list = []for li in li_list:img_url = li.xpath('./div/a/img/@src')for img in img_url:img_list.append(img)return img_list;def save(self, img_list):for img in img_list:response = requests.get(img)filename = './img/表情{}.gif'.format(self.name)print('正在爬取第{}张表情包'.format(self.name))# with open用法# 上下文管理# 使用with关键字,上下文管理针对的是with后的对象# 使用with... as 关键字# 上下文管理的语句块并不会开启新的作用域# 文件对象上下文管理1.进入with时,with后的文件对象是被管理对象# as子句后的标识符,指向with后的文件对象# with语句块执行完的时候,会自动关闭文件对象with open(filename, 'wb') as f:f.write(response.content)self.name += 1def main(self):url = 'http://www.bbsnet.com/biaoqingbao'html = self.get(url);save_list = self.parse_picture(html)self.save(save_list)
if __name__ == '__main__':e = EmojiSpider();e.main()

:bicyclist: 结果

运行Python文件,如你所愿,表情包乖乖的跑到了我的文件夹里面。

:banana: Tips

除此之外,还可以在Chrome浏览器上安装扩展程序。

插件:图片助手(ImageAssistant) 批量图片下载。

通过插件下载,比Python爬表情包快得多。

人生苦短,我用图片助手(ImageAssistant)

不要浪费你宝贵的时间学习 Python

手动狗头。

:grin: 最后的话

以上,如果对你有用的话,不妨点赞收藏关注一下,谢谢 :pray:

如果我要用Python偷表情包相关推荐

  1. python表情换头_使用Python制作表情包实现换脸功能

    "表情包"是现在非常流行的交流方式,通过一张图片就能把文字不能表达或不便于表达的情感给表示出来,表情包一经诞生,就统治了中国人的社交圈,尤其是年轻人,他们的社交方式是所谓" ...

  2. python制作表情包教程_使用Python制作表情包实现换脸功能

    "表情包"是现在非常流行的交流方式,通过一张图片就能把文字不能表达或不便于表达的情感给表示出来,表情包一经诞生,就统治了中国人的社交圈,尤其是年轻人,他们的社交方式是所谓" ...

  3. python是最好的语言表情包_Python语言学习之如何通过Python用表情包自动回复微信拍一拍...

    本篇文章主要介绍了Python语言学习之如何通过Python用表情包自动回复微信拍一拍,通过具体的内容展现,希望对Python语言的学习有所帮助. 前段时间微信上线了拍一拍功能,刚推出就被有才的网友玩 ...

  4. python恶搞表情包-哈哈!我用 Python 把你的朋友变成表情包了

    点击上方"Python学习与数据挖掘",关注公众号 设为"星标",好文章不错过! 来自:csdn | 代码已上传,文末附下载方式 在日常生活中,我们经常会存取一 ...

  5. python恶搞表情包-Python自动生成表情包,python在手,从此斗图无敌手

    作为一个数据分析师,应该信奉一句话----"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态----表情包!!!! 表情包不仅仅是一种符号,更是一种文化:是促 ...

  6. python恶搞表情包-用 Python 把你的朋友变成表情包

    实现步骤 导入朋友的照片(前景照片); 处理前景照片(缩放.旋转,填充); 导入熊猫头照片(背景照片); 外汇返佣将前景和背景拼接起来形成表情包; 在表情包下面添加文字. Python 实现 1.导入 ...

  7. python恶搞表情包-Python开发个人专属表情包网站,表情在手,天下我有

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

  8. python保存表情包_用Python一键保存半佛仙人所有的骚气表情包

    阅读文本大概需要 3 分钟 出处:Python知识圈 作者:pk哥 2019年发现两个有意思而且内容比较硬核的公众号.都是同一个人运营的,我们都叫他半佛老师,现实中的职业是风控,公众号内容涉及揭秘灰产 ...

  9. 斗图?教你用 Python 制作表情包

    作者 | Ahab 责编 | 屠敏 "表情包"是现在非常流行的交流方式,通过一张图片就能把文字不能表达或不便于表达的情感给表示出来,表情包一经诞生,就统治了中国人的社交圈,尤其是年 ...

最新文章

  1. 成为更优秀的开发人员:第一步-“制造”粉丝
  2. 2013NOIP普级组-- 小朋友的数字
  3. 「递归」第7集 | 腾讯开源联盟出征!
  4. 深度学习时代的目标检测算法综述
  5. 如何使用命令行拿到SAP Kyma的Lambda Function明细
  6. ARM Neon 列子 - Vector Add
  7. 如何阻止button默认的刷新页面操作
  8. 新站如何快速的度过考察期并避免进入沙盒期
  9. PHP7革新与性能优化
  10. 如何判断脚本执行成功
  11. graphpad图片怎么导出矢量图_为何我的文章图片总是不满足杂志社要求?
  12. 2008-2019年高等学校科技统计资料汇编
  13. mapboxgl 互联网地图纠偏插件(二)
  14. 使用大白鲨进行木马攻击实验并实现爆破目标机账号密码以远程连接
  15. Linux下go环境安装、环境配置并执行第一个go程序
  16. excel 选择一个单元格,所在行列变色
  17. 5G+北斗融合定位技术介绍
  18. 5G NR无线通信频率分配表
  19. 操作系统中pv操作用c语言,操作系统-pv操作.doc
  20. 聊一聊安全且正确使用缓存的那些事 —— 关于缓存可靠性、关乎数据一致性

热门文章

  1. Java学习——门票计费程序
  2. 双系统安装Ubuntu20.04的操作流程
  3. iphone日版官网货源监控状态脚本
  4. 大型csv文件排序问题
  5. window对象的子对象
  6. 【PEST++】01 参数优化与灵敏度分析
  7. Vert.x - vertx-web 路由讲解总结
  8. 使用Vertx编写HTTP客户端
  9. 如何搭建Java开发环境?
  10. python如何播放一段mp3音乐或者如何播放铃声