接下来就是查询数据了。
# 识别图片中的文字 #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, #username.encode('utf-8'), #urllib.parse.quote(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
标签:username,1.1,python,ip,image,练习,爬虫,gb2312,data From: https://www.cnblogs.com/usegear/p/17506218.html