Python网络爬虫:爬取并下载个性化签名图片 附GUI窗体版
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窗体版相关推荐
- Python:网络爬虫爬取某表情包网站
Python:网络爬虫爬取某表情包网站 参考: 爬虫基础知识点汇总(html文件基础和4个常用库 超级详细长文预警) [爬虫教程]吐血整理,最详细的爬虫入门教程~ HTML的简单介绍 HTML的全称为 ...
- Python网络爬虫爬取虎扑步行街爆照区话题
Python网络爬虫爬取虎扑步行街爆照区话题 作者:郜科科 最近的任务挺多的,但是心情很烦躁,想做一些自己喜欢的东西,前些时候感觉Python爬虫很好玩,就自学了一下.本人比较喜欢逛街--虎扑步行街, ...
- 用python网络爬虫爬取英雄联盟英雄图片
用python爬虫爬取lol皮肤. 这也用python网络爬虫爬取lol英雄皮肤,忘了是看哪个大神的博客(由于当时学了下就一直放在这儿,现在又才拿出来,再加上马上要考二级挺忙的.),代码基本上是没改, ...
- 使用python网络爬虫爬取新浪新闻(一)
使用python网络爬虫爬取新浪新闻 第一次写博客,感觉有点不太习惯!不知道怎么突然就想学学爬虫了,然后就用了一天的时间,跟着教程写了这个爬虫,!不说废话了,我将我从教程上学习的东西整个写下来吧,从头 ...
- 如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)
前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...
- python朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)
前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...
- python抓取朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)...
原标题:如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下) 前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往 ...
- python展示全部好友_利用Python网络爬虫抓取微信好友的签名及其可视化展示
前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...
- python爬虫好友聊天记录_利用Python网络爬虫抓取微信好友的签名及其可视化展示...
前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...
最新文章
- python怎么画形状_python – matplotlib – 如何绘制随机导向的矩形(或任何形状)?...
- 基于jsp的失物招领系统_基于Java web的校园失物招领系统
- xml文件中同时满足多个条件_问与答81: 如何求一组数据中满足多个条件的最大值?...
- AWS Fargate告诉你:什么是容器即服务
- 单按钮启停电路实物图_什么是电路的主回路?什么是控制回路?它们之间有什么区别?...
- CSS综合案例——淘宝焦点图(轮播图)布局及网页布局总结
- 华为交换机初始化_华为交换机启动配置命令详解大全
- php 匹配中英文分号,PHP正则匹配中英文、数字及下划线的方法【用户名验证】 原创...
- 学习51单片机之前需要的基础学科
- 【蓝桥杯】——备战冲刺最后两周
- java工程师面试题大全-100%公司笔试题你都能碰到几个
- 李沐动手学深度学习V2-机器翻译和数据集
- PQ节点-PV节点-平衡节点
- ruby gem 安装mysql2_如何在不安装 mysql 数据库的情况下安装 mysql2gem 包
- 异构图注意力网络(Heterogeneous Graph Attention Network)
- CRPR能补偿crosstalk吗?
- 教你用JavaScript制作图片回廊
- supervisord如何优雅的新加服务
- hashmap扩容过程,如何才能更容易拿到大厂Offer?挥泪整理面经
- CT值到灰度值的映射, 以及windowing中的窗宽和窗位