流程:

1 设置url

2 设置消息头

3 设置消息体

4 获取响应

5 解析相应

6 验证数据

接下来就是查询数据了。

# 识别图片中的文字
#image = Image.open('captcha.png')
image = Image.open('G:\Python爬虫\captcha.png')
code = pytesseract.image_to_string(image) # 从用户输入获取用户名、身份证号码和验证码
username = 'XXX'
# input("请输入用户名:")
id_card = '123456789012345678'
#input("请输入身份证号码:")
ip = '1.1.1.1'
# 构造查询所需的数据
data = {
"pusername":username,
"idcard": id_card,
"ip":ip,
"verifycode": code.strip()
}
print(data)
# 发送查询请求
response = requests.post("http://xyz/xyinfo.do?method=query", data=urllib.parse.urlencode(data, encoding='gb2312'), headers=headers4query)
# 输出查询结果
print(response.text)
print(data)

这里一个坑,请注意:

通过抓取包,发现发送的:

pusername=%D0%EC%123A%E131C%C120%B121C&idcard=323123123121231231&ip=1.1.1.1&verifycode=3313

是gb2312。在程序中也要进行对应转换。语句如下:


response = requests.post("http://xyz/xyinfo.do?method=query", data=urllib.parse.urlencode(data, encoding='gb2312'), headers=headers4query)

同时注意header中:'Content-Type': 'application/x-www-form-urlencoded;charset=gb2312',不要改成其它格式。

goodluck

补课:

四种编码方式如下,在header中设置:

1、application/x-www-form-urlencoded

POST http://www.example.com HTTP/1.1
Content-Type:application/x-www-form-urlencoded;charset=utf-8

2、multipart/form-data

POST http://www.example.com HTTP/1.1
Content-Type:multipart/form-data;

3、application/json

4、text/xml

post请求四种传送正文方式:

  • 请求正文是application/x-www-form-urlencoded
  • 请求正文是multipart/form-data
  • 请求正文是raw
  • 请求正文是binary

python练习-爬虫(续)的更多相关文章

  1. Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱(转)

    原文:http://www.52nlp.cn/python-网页爬虫-文本处理-科学计算-机器学习-数据挖掘 曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开 ...

  2. Python网络爬虫与信息提取

    1.Requests库入门 Requests安装 用管理员身份打开命令提示符: pip install requests 测试:打开IDLE: >>> import requests ...

  3. Python网络爬虫与信息提取笔记

    直接复制粘贴笔记发现有问题 文档下载地址//download.csdn.net/download/hide_on_rush/12266493 掌握定向网络数据爬取和网页解析的基本能力常用的 Pytho ...

  4. Python简单爬虫入门三

    我们继续研究BeautifulSoup分类打印输出 Python简单爬虫入门一 Python简单爬虫入门二 前两部主要讲述我们如何用BeautifulSoup怎去抓取网页信息以及获取相应的图片标题等信 ...

  5. Ubuntu下配置python完成爬虫任务(笔记一)

    Ubuntu下配置python完成爬虫任务(笔记一) 目标: 作为一个.NET汪,是时候去学习一下Linux下的操作了.为此选择了python来边学习Linux,边学python,熟能生巧嘛. 前期目 ...

  6. Python简单爬虫入门二

    接着上一次爬虫我们继续研究BeautifulSoup Python简单爬虫入门一 上一次我们爬虫我们已经成功的爬下了网页的源代码,那么这一次我们将继续来写怎么抓去具体想要的元素 首先回顾以下我们Bea ...

  7. [Python] 网络爬虫和正则表达式学习总结

    以前在学校做科研都是直接利用网上共享的一些数据,就像我们经常说的dataset.beachmark等等.但是,对于实际的工业需求来说,爬取网络的数据是必须的并且是首要的.最近在国内一家互联网公司实习, ...

  8. python简易爬虫来实现自动图片下载

    菜鸟新人刚刚入住博客园,先发个之前写的简易爬虫的实现吧,水平有限请轻喷. 估计利用python实现爬虫的程序网上已经有太多了,不过新人用来练手学习python确实是个不错的选择.本人借鉴网上的部分实现 ...

  9. GJM : Python简单爬虫入门(二) [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  10. Python分布式爬虫原理

    转载 permike 原文 Python分布式爬虫原理 首先,我们先来看看,如果是人正常的行为,是如何获取网页内容的. (1)打开浏览器,输入URL,打开源网页 (2)选取我们想要的内容,包括标题,作 ...

随机推荐

  1. 【事件分析】20250112-Usual 赎回机制调整事件

    背景信息 https://docs.usual.money/ Usual 是一个聚合 RWA 的稳定币发行协议,经济模型中存在三种代币: USD0:Usual 发行的稳定币. USD0++:USD0+ ...

  2. HttpClient.PostAsynct 发送Json数据

    HttpClient.PostAsync第二个参数设置HttpContent 发送Json数据. 需要这是这个content.Headers.ContentType = new System.Net. ...

  3. 6种@Transactional注解的失效场景

    一.事务 事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种. 编程式事务:是指在代码中手动的管理事务的提交.回滚等操作,代码侵入性比较强, ...

  4. 【隐私计算笔谈】MPC系列专题(十):安全多方计算下的集合运算

    学习&转载文章:[隐私计算笔谈]MPC系列专题(十):安全多方计算下的集合运算 集合运算 集合可以通俗地描述为确定的一堆东西.如有一个集合\(\),一个元素\(\)要么属于集合\(\),记做\ ...

  5. TCP的“三次握手”和“四次挥手”

    转载:链接1 链接2 TCP connection 客户端与服务器之间数据的发送和返回的过程当中需要创建一个叫TCP connection的东西:由于TCP不存在连接的概念,只存在请求和响应,请求和响 ...

  6. VulNyx - System

    扫描发现 2121是ftp端口 8000 http的一个端口 6379redis端口 爆破redis的密码 爆破出来时bonjour 猜测ftp的密码和redis的密码是一样的 尝试用密码去爆出ftp ...

  7. DBeaver出现“Public Key Retrieval is not allowed”错误的解决办法

    1.问题描述 我们在使用DBeaver连接MySql的时候,可能会出现"Public Key Retrieval is not allowed"的错误提示,如下图所示: 2.解决办 ...

  8. Luogu P10838 『FLA - I』庭中有奇树 题解 [ 绿 ] [ 二分 ] [ 双指针 ] [ 树的遍历 ]

    庭中有奇树:很多算法揉在一起的好题. 转化题意 因为要封锁 \(m\) 条路径,根据贪心思想,他一定会封锁最短的 \(m\) 条路径.所以我们能走的最短传送路径就是最短的第 \(m+1\) 条路径. ...

  9. HTML - 1、基础

    <!DOCTYPE html> <!-- 指定网页内容的语言 --> <html lang="en"> <head> <!-- ...

  10. 洛谷P1983 [NOIP2013 普及组] 车站分级 题解

    思路 由题可知,在一趟车次的区间内,停靠的站点的等级恒大于不停靠的站点. 因此,对于每一趟车次的区间,给所有停靠的站点向所有不停靠的站点两两连有向边,然后求图中最长的路径长度,就能得到答案. 实现 因 ...