流程:

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. 特斯拉CEO埃隆马.斯克的五步工作法,怎么提高工程效率加速产品开发?

    简介 在<埃隆·马斯克传>这本书中,有两个章节写到了特斯拉 CEO 埃隆马斯克为了在一段时间内,提升特斯拉汽车 model 3 的产能到每个月 5000 辆这个数量级,在书中叫 " ...

  2. 经典算法的Java实现

    1.快速排序描述 1.每一轮排序选择一个基准点(pivot)进行分区 1.让小于基准点的元素进入一个分区,大于基准点的元素进入另一个分区 2.当分区完成时,基准点元素的位置就是其最终位置 2.在子分区 ...

  3. 第七章 (Nginx+Lua)Web开发实战商品详情页

    本章以京东商品详情页为例,京东商品详情页虽然仅是单个页面,但是其数据聚合源是非常多的,除了一些实时性要求比较高的如价格.库存.服务支持等通过AJAX异步加载加载之外,其他的数据都是在后端做数据聚合然后 ...

  4. 第一个shell脚本(bash脚本)

    首先它是一个脚本,并不能作为正式的编程语言.因为是跑在linux的shell中,所以叫shell脚本.说白了,shell脚本就是一些命令的集合.运维工作中把常用的一系列的操作都记录到一个文档中,然后去 ...

  5. Nodify学习 三:连接器

    前置 连接概述 连接是由两个点之间创建的.Source和Target依赖属性是Point类型,通常绑定到连接器的Anchor点. 基本连接 库中所有连接的基类是BaseConnection,它派生自S ...

  6. changeServer.sh一键切换服务器脚本

    直接看改进版2.0 切换服务器,免密登录vi changeServer.sh #!/bin/bash #authe by wangxp export IFCFG=/etc/sysconfig/netw ...

  7. 如何在Spring Boot项目中添加国密SM4加密支持?——基于过滤器的实现

    如何在Spring Boot项目中添加国密SM4加密支持呢?--基于过滤器的实现 引言 ​ 在数字化时代,数据安全至关重要,尤其是在API交互过程中,确保传输数据的安全性是保护隐私和机密信息的关键.中 ...

  8. C语言编程技巧 全局变量在多个c文件中公用的方法

    在使用C语言编写程序时,经常会遇到这样的情况:我们希望在头文件中定义一个全局变量,并将其包含在两个不同的C文件中,以便这个全局变量可以在这两个文件中共享.举个例子,假设项目文件夹"proje ...

  9. 【COM3D2Mod 制作教程(4)】实战!制作身体部分(上)

    [COM3D2Mod 制作教程(4)]实战!制作身体部分(上) 教程介绍 现在正式进入实战教程环节,我会以我的实际制作过程详尽的教授每个细节,也因此受限于篇幅大小,"实战!制作身体部分&qu ...

  10. HTTP - [01] 简介

    HTTP本身是不安全的,因为传输的数据未经加密,可能会被窃听或篡改.为了解决这个问题,引入了HTTPS,即在HTTP上加入SSL/TLS协议,为数据传输提供了加密和身份验证. 一.概述   HTTP( ...