在公众号,看到一个比较好玩的程序。它使用post的来传送请求,以前没有遇到过。可能是自己,写的程序太少了。查了一下post的用法:

通常,你想要发送一些编码为表单形式的数据——非常像一个 HTML 表单。要实现这个,只需简单地传递一个字典给 data 参数。你的数据字典在发出请求时会自动编码为表单形式:

 >>> payload = {'key1': 'value1', 'key2': 'value2'}

 >>> r = requests.post("http://httpbin.org/post", data=payload)
>>> print(r.text)
{
...
"form": {
"key2": "value2",
"key1": "value1"
},
...
}

用data参数,发送一个类似表单的数据。虽然是照着别人的程序敲得,但是还是遇到了,很多了错误。总结起来,是字典里的键写错了。导致爬取的图片,不是自己想要的图片。自己眼高手低啊。

虽然我们的键和值写错了,可以爬取图片,但是爬取的图片并不是我们想要的。自己思考是,传递的参数,不能加载到爬取的网页。爬取的只是网页的初始图片,而不是我们传递参数后运行得到的图片。

以下是代码:

 from tkinter import *
from tkinter import messagebox
import requests
import re
from PIL import Image,ImageTk #模拟浏览器发送请求
def download(): startUrl = "http://www.uustv.com/"
#获取用户输入的姓名
name = entry.get()
#去空格
name = name.strip()
if name == '':
messagebox.showinfo("提示:","请输入用户名")
else:
date = {
'word': name,
'sizes': '',
'fonts': 'jfcs.ttf',
'fontcolor' : '#000000'
}
result = requests.post(startUrl,data = date)
result.encoding = "utf-8"
#获取网站的源代码
html = result.text
reg = '<div class="tu">.<img src="(.*?)"/></div>'
#正则表达式 (.*?)全部都需要匹配
imagePath = re.findall(reg,html)
#获取图片的完整路径
imgUrl = startUrl + imagePath[0]
print(imgUrl)
#获取图片的内容
response = requests.get(imgUrl).content
f = open('{}.gif'.format(name),'wb')
f.write(response) #图片显示到窗口上
bm = ImageTk.PhotoImage(file = '{}.gif'.format(name)) label2 = Label(root,image = bm)
label2.bm = bm
label2.grid(row = 2,columnspan = 2) # GUI用户使用界面
#创建窗口
root = Tk()
#标题
root.title("我要学python")
#窗口的大小 宽,高
root.geometry("600x300")
#窗口的位置
root.geometry("-500+200")
#标签控件
label = Label(root,text = "签名",font = ("华文行楷",20),fg = "blue")
label.grid(row = 0,column = 0) #设计输入框
entry = Entry(root,font = ("微雅素黑",20))
entry.grid(row = 0,column = 1)
#点击按钮
button = Button(root,text = "设计签名",font = ("微雅素黑",22),command = download)
button.grid(row = 1,column = 0)
#循环消息,显示窗口
root.mainloop()

个人总结是通过post来获取图片的地址,然后通过get来获取图片,然后加载图片。图片有点难看。

python+爬虫+签名的更多相关文章

  1. Python爬虫初学(二)—— 爬百度贴吧

    Python爬虫初学(二)-- 爬百度贴吧 昨天初步接触了爬虫,实现了爬取网络段子并逐条阅读等功能,详见Python爬虫初学(一). 今天准备对百度贴吧下手了,嘿嘿.依然是跟着这个博客学习的,这次仿照 ...

  2. Python爬虫之模拟登录微信wechat

    不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一起.既然它这么重要,如果我们可以利用爬虫模拟登录,是不是就意味着我们可以获取这些信息 ...

  3. 23个Python爬虫开源项目代码,让你一次学个够

    今天为大家整理了23个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快 1.WechatSogou [1]– 微信公众号 ...

  4. Python爬虫开源项目代码,爬取微信、淘宝、豆瓣、知乎、新浪微博、QQ、去哪网等 代码整理

    作者:SFLYQ 今天为大家整理了32个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快 1.WechatSogou [ ...

  5. 23个Python爬虫开源项目代码

    今天为大家整理了23个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快 1.WechatSogou [1]– 微信公众号 ...

  6. 23个Python爬虫开源项目代码,包含微信、淘宝、豆瓣、知乎、微博等

    今天为大家整理了23个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心,所有链接指向GitHub,微信不能直接打开,老规矩,可以用电脑打开. 关注公众号「Pyth ...

  7. Python 爬虫的工具列表 附Github代码下载链接

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  8. Python 爬虫的工具列表大全

    Python 爬虫的工具列表大全 这个列表包含与网页抓取和数据处理的Python库.网络 通用 urllib -网络库(stdlib). requests -网络库. grab – 网络库(基于pyc ...

  9. 32个Python爬虫实战项目,满足你的项目慌

    爬虫项目名称及简介 一些项目名称涉及企业名词,小编用拼写代替 1.[WechatSogou]- weixin公众号爬虫.基于weixin公众号爬虫接口,可以扩展成其他搜索引擎的爬虫,返回结果是列表,每 ...

随机推荐

  1. Html标签及各种属性(持续更新)

    <!--Html标签属性之:required (必须的)--> <input type="file" id="Images" required ...

  2. apt-get 常用命令总结

    apt-get  高级包装工具(英语:Advanced Packaging Tools,简称:APT)是Debian及其衍生发行版(如:ubuntu)的软件包管理器.APT可以自动下载,配置,安装二进 ...

  3. 【powerBI】power pivot添加参数表

    背景 最近在做应用分析,爬了几个应用市场的排行榜,需要分析前多少名各个品类的app有多少个.数据量不大,excel就能做分析,所以想起来pivot的参数表功能.这个功能还是比较实用的,在这再做个记录, ...

  4. jgGrid pivot reload重新加载及刷新数据

    1.当使用jqGrid进行多维表时,reload方法会不停的重复增加标题的行数. 解决办法:直接删除jqGrid,重新初始化页面. function query(){//crossTable pivo ...

  5. [bcc32 Error] ws2def.h(231): E2238 Multiple declaration for 'sockaddr'

    [bcc32 Error] ws2def.h(231): E2238 Multiple declaration for 'sockaddr'  Full parser context    ksrGe ...

  6. C# 调用win32 DLL报错 System.BadImageFormatException

    C# 调用win32 DLL报错  System.BadImageFormatException 项目右键属性->项目设计器->生成->平台->把'默认设置(任何 CPU)'改 ...

  7. 浅谈 foreach 的原理

    package com.shenzhou; import java.util.ArrayList; import java.util.Iterator; import java.util.List; ...

  8. linux文本处理笔记

    cut: 按列操作文本 sort: 排序 uniq: 去重,去除连续重复行 cut -d 'delimiter' -f start-end filename.txt   # -d 表示分割符号,del ...

  9. Servlet基本_オブジェクトのスコープ

    1.スコープ種類Servletには以下のスコープがあります.Request.Session.Applicationの順にスコープは広くなっていきます.・Applicationスコープ:アプリケーション ...

  10. jvm问题

     问题: 1. 一台服务器,部署多个服务,请问,这多个服务,对应的是一个jvm,还是多个jvm? 2. 一个线程,从controller 到 service,到DAO,会调用多个方法,请问是 对应一个 ...