返回null json请求post方法



我正在尝试在网站上模拟搜索。我跟踪并发现该网站使用张贴方法,这是我的尝试

import requests
sToken = '''03AGdBq25wTuQvHHSU_HF2WoS6DJZbeh9ajHUOQeOMPAFZtLTANYghGsghuvYIEN5ibr3NZpB90FSKbJI7DSgymFsck91PJ2OQ8X_IN77X6KC0gVCjS4iR6Y22UAtYqLdsXwciZLhRY4frXnbqJZXlgPEKK5GgrlgEvxobJLAZQDoiew3hHOCx1Xue-rcjZuW6IGHsnjs15-NaBrVTxAqbn5CWR4O_r529TMm4m4J6112EhiCpt55S-Q7QVv0ZeTc3Hj8IvOtVhhR6DV0LEmlOcFLoX0ZQuxZ-f6IRwzQNC2GA-iijQ2G2Jvo1UHxnFWIBl5PUvCrCz4e-Ls69aNxMm11QToRl2zkHXxGjJHmojJwT2u3wtaRuX0xRuSlfQPRV9_Jfwf5Eb8KBJ5qGjyEMQyR_HQmxuze5aU7zK7o1GD69ioSWvDl3OCulZo_sc4QcrixkYCGyXFSK3f7I564D8b-Xd8HI7j_76g'''
sVerification='''CfDJ8KYexE-JuUdFv8XKqnZO6wgTYY0hx8JdeirHBUgOs3orS5WyDId3TbriUpQetxGVIWp4l6G8aliDUtH1bW9j5rbtCE6GWD7tUSAJqngcpfNOHTJDGHMOELBX54dGTTYAfZyUtrxzcg67m_WR5RoPULE'''

url = 'https://httpbin.org/post'
payload = {
'CivilId':'278071306337',
'Token': sToken,
'InquiryType':2,
'__RequestVerificationToken': sVerification,
}
response = requests.post(url, data=payload)
print(response.text)

响应是可以的,我可以得到一个响应,但json为空。我只得到了使用的标头和令牌,但没有得到搜索结果结果看起来像

{
"args": {},
"data": "",
"files": {},
"form": {
"CivilId": "278071306337",
"InquiryType": "2",
"Token": "03AGdBq25wTuQvHHSU_HF2WoS6DJZbeh9ajHUOQeOMPAFZtLTANYghGsghuvYIEN5ibr3NZpB90FSKbJI7DSgymFsck91PJ2OQ8X_IN77X6KC0gVCjS4iR6Y22UAtYqLdsXwciZLhRY4frXnbqJZXlgPEKK5GgrlgEvxobJLAZQDoiew3hHOCx1Xue-rcjZuW6IGHsnjs15-NaBrVTxAqbn5CWR4O_r529TMm4m4J6112EhiCpt55S-Q7QVv0ZeTc3Hj8IvOtVhhR6DV0LEmlOcFLoX0ZQuxZ-f6IRwzQNC2GA-iijQ2G2Jvo1UHxnFWIBl5PUvCrCz4e-Ls69aNxMm11QToRl2zkHXxGjJHmojJwT2u3wtaRuX0xRuSlfQPRV9_Jfwf5Eb8KBJ5qGjyEMQyR_HQmxuze5aU7zK7o1GD69ioSWvDl3OCulZo_sc4QcrixkYCGyXFSK3f7I564D8b-Xd8HI7j_76g",
"__RequestVerificationToken": "CfDJ8KYexE-JuUdFv8XKqnZO6wgTYY0hx8JdeirHBUgOs3orS5WyDId3TbriUpQetxGVIWp4l6G8aliDUtH1bW9j5rbtCE6GWD7tUSAJqngcpfNOHTJDGHMOELBX54dGTTYAfZyUtrxzcg67m_WR5RoPULE"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"Content-Length": "708",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.27.1",
"X-Amzn-Trace-Id": "Root=1-624451fc-6e6add4515bc5d1b413838bb"
},
"json": null,
"origin": "41.237.210.244",
"url": "https://httpbin.org/post"
}

注意部件

"json": null,

我希望url返回json,该json具有包含所需结果的字符串message

我可以达到一个点,使我能够得到想要的结果与以下代码

import requests
cookies = {
'.AspNetCore.Antiforgery.d9_uhBsXXoI': 'CfDJ8KYexE-JuUdFv8XKqnZO6wjmpfNzm7AIrby7w5RpXYO1XaKtCFOGGQ96YjD5Bcr1O2mEo-FpD4Tys0bSYNvrzXdZfhK2Nj8V2DmuBWFK-g2OjU-koph4q2K5QqkHSZ1iyBWFRm82d6uPjgnZI_ueNjE',
'BIGipServerE-Service-WEB-APP': '187505580.47873.0000',
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
}
data = {
'CivilId': '278071306337',
'Token': '03AGdBq27dRjCS0ziDuLKZbICeGo3VqXrV36Y9NhQTF3BWTMC4R3liokPucTiJ0GrcM5kdf4Awk2tiY87uxhdgPphU_NZ5tHx1DU8qMc82qsEJlNCZydvDNwSVt4Akc2yRt5XHOKozftETs9UO2vnLCUgZFNAR7j7sO6SDvuD6N5tdKu77lI8VM4aNvoutHhg0psV2njysbXQMI2pZW7U3Ky27Rw8VAr88o2am8fhpSTisdvY1Zx8TQ8m1L8_IRwVfXSqUDXsTROlPv7H0xEPkUvu81h4WE0sTTw3xCY7HpxmThIBfp-duGtdKtDAi6GiKnd51cAhL3uwAUWxSp0WbFCwLHte_GrVpXUmHYKeRFz5Y-84YXG1vCHUYv-Cp65_nFWp7CyDslvBqJlCdtK45H6L4EyLfaD6G6VUPv-HxOYcD5kZfSh47CKVfLiB_vPCpmCEs7MUAmGUKo0Q19eDppU-FUPKXfs60OQ',
'InquiryType': '2',
'__RequestVerificationToken': 'CfDJ8KYexE-JuUdFv8XKqnZO6wi1a2H7xXZBfeIVmwF-9lbwdBqw9VcMXErc7qC8paEuzbnIGaH7z1n27CDmd2NsGqxu8hblfZ7gYfEhrBUM4TxaGxeTacgbs4f_JxJVZVKQ3yvrYS4p5PHZ1ZToFRyh9lk',
}
response = requests.post('https://services.paci.gov.kw/card/search', headers=headers, cookies=cookies, data=data)
print(response.text)
with open('Output.txt', 'w') as f:
f.write(response.text)

但是我如何用代码本身生成cookie和令牌呢?

事实上,这不是一个答案,而是我最近尝试为cookie和令牌创建变量(但没有返回预期结果(。但我分享代码以便查看和测试(也许你可以找到真正的问题(

import requests
from bs4 import BeautifulSoup as bs
from requests_html import HTMLSession
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:98.0) Gecko/20100101 Firefox/98.0',
}
url = 'https://services.paci.gov.kw/card/inquiry?lang=ar&serviceType=2'
s = HTMLSession()
#s = requests.Session()
r = s.get(url, headers=headers)
r.html.render(sleep=5)
resp = r.html.html
#resp = r.text
#s.get('https://services.paci.gov.kw/card/inquiry?lang=ar&serviceType=2')
cookies = s.cookies
cookies_dic = cookies.get_dict()
AspNetCore = cookies_dic['.AspNetCore.Antiforgery.d9_uhBsXXoI']
BIGipServerE = cookies_dic['BIGipServerE-Service-WEB-APP']
print(cookies_dic)
print('=' * 50)
print(AspNetCore)
print('=' * 50)
print(BIGipServerE)
print('=' * 50)
# print(resp)
soup = bs(resp, 'html.parser')
vToken = soup.find('input', attrs={'name': '__RequestVerificationToken'})
print(vToken['value'])
print('=' * 50)
iToken = soup.find('input', attrs={'id': 'Token'})
print(iToken['value'])
print('=' * 50)
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:98.0) Gecko/20100101 Firefox/98.0',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
}
# .AspNetCore.Antiforgery.d9_uhBsXXoI
cookies = {
'.AspNetCore.Antiforgery.d9_uhBsXXoI': AspNetCore,
'BIGipServerE-Service-WEB-APP': BIGipServerE,
}
data = {
'CivilId': '287061510398',
'Token': iToken['value'],
'InquiryType': '2',
'__RequestVerificationToken': vToken['value'],
}
response = requests.post('https://services.paci.gov.kw/card/search', headers=headers, cookies=cookies, data=data)
print(response.text)
with open('Output.txt', 'w') as f:
f.write(response.text)

最新更新