再scrapy 中 可以使用formdata 发送post请求 但是也仅限于formdata 方式的数据
但是如果post请求 要求传递json 单纯使用下列方式 是提取不出来出数据的
def start_requests(self):
for i in range(1000):
data={
"pageNum": i,
"pageSize": 10,
"tradeType": "01",
}
yield scrapy.Request(
method="POST",
url ="http://www.xxx.com",
body=json.dumps(data),
callback=self.parse,
)
需要加个headers
headers={
"Content-Type": "application/json"
}
注意: headers 加多了 依然会不成功 所以大家 尽量不要写太多请求头
源码如下
def start_requests(self):
for i in range(1000):
data={
"afficheSourceType": "",
"afficheTitle": "",
"pageNum": i,
"pageSize": 10,
"pubTime": "",
"regionCode": "",
"tradeClassify": "",
"tradeType": "01",
}
yield scrapy.Request(
url ="http://www.ahtba.org.cn/site/trade/affiche/pageList",
body=json.dumps(data),
callback=self.parse,
headers={
"Content-Type": "application/json"
}
)
本文介绍如何在Scrapy框架中使用POST方法发送JSON格式的数据,并解析响应。重点在于设置正确的Content-Type请求头为application/json,以确保服务器能够正确解析接收到的数据。

被折叠的 条评论
为什么被折叠?



