Hello,大家好,我是wangzirui32,最近我开了个新的系列,是“Python网络爬虫”分类,还请大家多多支持!
今天,我们来学习如何爬取并下载个性化签名图片,开始学习吧!

学习目录

  • 1. 分析网页
    • 1.1 网址
    • 1.2 开始分析
  • 2. 编写代码
    • 2.1 爬取代码
    • 2.2 GUI代码

1. 分析网页

1.1 网址

这里要爬取的网站为www.uustv.com,这是一个可以制作个性化签名的网站。

1.2 开始分析

如图:
字体大小标签和字体风格标签里有什么呢?
那么生成的图片链接在哪儿?

2. 编写代码

2.1 爬取代码

有了这些信息,我们可以构建一个Python字典:

data = {"word": "小明","sizes": "60","fonts": "1.ttf", # 艺术体风格"fontcolor": "#000000",}

ok,创建一个demo.py文件,开始编写代码:

# 导入所需模块
from requests import get, post
from bs4 import BeautifulSoup as bs# url定义
url = "http://www.uustv.com/"name = input("请输入你的名字:")# 构建表单字典
data = {"word": name,"sizes": "60","fonts": "1.ttf","fontcolor": "#000000",}# 发起post请求 并传入数据
response = post(url, data=data)
# 设置文本编码为UTF-8
response.encoding = "UTF-8"# 解析
soup = bs(response.text, "html.parser")# 找到在class属性为tu的div标签 再里面的img标签
img = soup.find("div", {"class": "tu"}).find("img")# 获取src属性 并与网址拼接
img_url = url + img.get("src")# 下载图片
img_response = get(img_url)# 对图片进行保存 wb指以二进制存入文件
with open("pic.gif", "wb") as p_f:# 由于图片是二进制数据 所以是写入content属性 而不是textp_f.write(img_response.content)

2.2 GUI代码

首先,我们要修改一下demo.py文件的代码,修改为:

from requests import get, post
from bs4 import BeautifulSoup as bs
import tkinter.messagebox as messagebox# 保存路径 和 生成的名字
def get_pic(path, name):url = "http://www.uustv.com/"data = {"word": name,"sizes": "60","fonts": "1.ttf","fontcolor": "#000000",}response = post(url, data=data)response.encoding = "UTF-8"soup = bs(response.text, "html.parser")img = soup.find("div", {"class": "tu"}).find("img")img_url = url + img.get("src")img_response = get(img_url)with open(path + "/pic.gif", "wb") as p_f:p_f.write(img_response.content)messagebox.askokcancel("提示", "生成完毕!")

然后,创建文件GUI.py,输入代码:

import tkinter as tk
import tkinter.filedialog as filedialog
from demo import get_pic# 获取保存的路径
def get_save_path():FolderPath = filedialog.askdirectory()global pathpath.set(FolderPath)label_font = ("黑体", 11)root = tk.Tk()root.geometry("400x400")
root.title("制作个性化签名")label_1 = tk.Label(root, text="请输入你的名字:", font=label_font)
label_1.grid(sticky="NW")name_text = tk.Entry(root)
name_text.grid(sticky="NW")label_2 = tk.Label(root, text="请选择保存路径:", font=label_font)
label_2.grid(sticky="NW")path = tk.StringVar()
path.set("C:/")
save_path_text = tk.Entry(root, text=path, width=50)
save_path_text.grid(sticky="NW")save_path_button = tk.Button(root, text="浏览...", command=get_save_path)
save_path_button.grid(sticky="NW")save_button = tk.Button(root, text="生成签名",command=lambda: get_pic(path.get(), name_text.get()))
save_button.grid(sticky="NW")root.mainloop()

这样就ok了!


好了,今天的课程就到这里了,喜欢的可以点赞收藏,拜拜!

Python网络爬虫:爬取并下载个性化签名图片 附GUI窗体版相关推荐

  1. Python:网络爬虫爬取某表情包网站

    Python:网络爬虫爬取某表情包网站 参考: 爬虫基础知识点汇总(html文件基础和4个常用库 超级详细长文预警) [爬虫教程]吐血整理,最详细的爬虫入门教程~ HTML的简单介绍 HTML的全称为 ...

  2. Python网络爬虫爬取虎扑步行街爆照区话题

    Python网络爬虫爬取虎扑步行街爆照区话题 作者:郜科科 最近的任务挺多的,但是心情很烦躁,想做一些自己喜欢的东西,前些时候感觉Python爬虫很好玩,就自学了一下.本人比较喜欢逛街--虎扑步行街, ...

  3. 用python网络爬虫爬取英雄联盟英雄图片

    用python爬虫爬取lol皮肤. 这也用python网络爬虫爬取lol英雄皮肤,忘了是看哪个大神的博客(由于当时学了下就一直放在这儿,现在又才拿出来,再加上马上要考二级挺忙的.),代码基本上是没改, ...

  4. 使用python网络爬虫爬取新浪新闻(一)

    使用python网络爬虫爬取新浪新闻 第一次写博客,感觉有点不太习惯!不知道怎么突然就想学学爬虫了,然后就用了一天的时间,跟着教程写了这个爬虫,!不说废话了,我将我从教程上学习的东西整个写下来吧,从头 ...

  5. 如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

    前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...

  6. python朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

    前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...

  7. python抓取朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)...

    原标题:如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下) 前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往 ...

  8. python展示全部好友_利用Python网络爬虫抓取微信好友的签名及其可视化展示

    前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...

  9. python爬虫好友聊天记录_利用Python网络爬虫抓取微信好友的签名及其可视化展示...

    前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...

最新文章

  1. python怎么画形状_python – matplotlib – 如何绘制随机导向的矩形(或任何形状)?...
  2. 基于jsp的失物招领系统_基于Java web的校园失物招领系统
  3. xml文件中同时满足多个条件_问与答81: 如何求一组数据中满足多个条件的最大值?...
  4. AWS Fargate告诉你:什么是容器即服务
  5. 单按钮启停电路实物图_什么是电路的主回路?什么是控制回路?它们之间有什么区别?...
  6. CSS综合案例——淘宝焦点图(轮播图)布局及网页布局总结
  7. 华为交换机初始化_华为交换机启动配置命令详解大全
  8. php 匹配中英文分号,PHP正则匹配中英文、数字及下划线的方法【用户名验证】 原创...
  9. 学习51单片机之前需要的基础学科
  10. 【蓝桥杯】——备战冲刺最后两周
  11. java工程师面试题大全-100%公司笔试题你都能碰到几个
  12. 李沐动手学深度学习V2-机器翻译和数据集
  13. PQ节点-PV节点-平衡节点
  14. ruby gem 安装mysql2_如何在不安装 mysql 数据库的情况下安装 mysql2gem 包
  15. 异构图注意力网络(Heterogeneous Graph Attention Network)
  16. CRPR能补偿crosstalk吗?
  17. 教你用JavaScript制作图片回廊
  18. supervisord如何优雅的新加服务
  19. hashmap扩容过程,如何才能更容易拿到大厂Offer?挥泪整理面经
  20. CT值到灰度值的映射, 以及windowing中的窗宽和窗位

热门文章

  1. CentOS7 搭建 iSCSI网络存储
  2. 微信调用保存到联系人
  3. Win10系统跳过pin设置的操作方法
  4. 通信网络单元定级备案证明是什么?定级备案证明开具流程
  5. 电大c 语言程序形考作业,国开电大 C语言程序设计 形考三答案
  6. 解压GitHub压缩文件
  7. 【互联网营销基础知识】做电商运营需要掌握什么技能?
  8. 强烈推荐款下载不限速解析神器
  9. oracle检查约束的创建,检查约束调用函数Oracle SQL开发人员
  10. sun服务器修改启动,Sun小机系统启动/solaris启动系统/开机