例:
图片右下角就是Request payload
其中,Request payload以json格式进行传参,所以在构造模拟请求的时候,也需要用json格式
代码:
import requests
import json
import jsonpath
import time
from lxml import etree
from urllib.parse import urlencode
class ZhongXinYouyu(object):
def __init__(self,base_url=None):
self.index_url = "https://mi.creditcard.ecitic.com/citiccard/yp-market-pc/goodsclass/queryRecord?&rtnUrl=https://mi.creditcard.ecitic.com/citiccard/yp-market-pc/search.html?classifyId=ea2e539117724781&className=%E6%89%8B%E6%9C%BA"
self.session = requests.session()
self.payload_header = {
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'Content-Length': '127',
'Content-Type': 'application/json;charset=UTF-8',
'Host': 'mi.creditcard.ecitic.com',
'X-Requested-With': 'XMLHttpRequest',
}
def index_html(self):
"""
解析主页,获取分类信息的json文件
:return: json_data
"""
payload_data ={
"bizChannel":"11",
}
payload_data = json.dumps(payload_data ) #json化
response = self.session.post(url=self.index_url,data=payload_data,headers=self.payload_header)
response.encoding = response.apparent_encoding # 页面编码
if response.status_code == 200:
json_data = json.loads(response.text)
# with open(r"documents\index_json.txt",'w+',encoding='utf-8') as f:
# f.write(json.dumps(json_data))
# f.close()
return json_data
else:
print("请求失败")
def run(self):
self.index_html()
if __name__ == '__main__':
runs = ZhongXinYouyu()
runs.run()