爬虫遇到的3种payload信息该如何处理

Query String Parameters (查询字符串参数)

当发生一次GET请求时,参数会以url string的形式传递,也就是url中?后面跟着的字符串则为其请求参数,且以&作为分隔符。简单说就是url上面的请求参数

# 发请求时可处理成
import requests
my_headers = {
"User-Agent": "xxx"
}
resp = requests.get(url, headers=my_headers)

Form data (表单数据)

此时, 肯定是post请求。数据是按照form表单的形式传递的

import requests
my_headers = {
"User-Agent": "xxx"
}
my_data = {
    "page": 1,
    "data": ""
}
resp = requests.post(url, headers=my_headers, data=my_data)

request payload

此时, 肯定是post请求,数据是直接被挂载到请求体上的。参数会以Request Payload的形式进行传递,数据格式为JSON。
代码中post的参数separators=(‘,’, ‘:’) 是为了让程序更好的伪装,python字典中间是会隔着空格的,而js的对象没有,故通过这种方式去掉空格

import requests
import json
my_headers = {
"Content-Type": "application/json"
"User-Agent": "xxx"
}
payload = {
    "page": 1,
    "size": 20
}
resp = requests.post(url=url, headers=my_headers, data=json.dumps(payload, separators=(',', ':'))
print(resp.json())
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐