a79912434 2022-02-04 13:32 采纳率: 75%
浏览 39
已结题

python获取动态网页已加入请求头仍然406错误

问题遇到的现象和发生背景

python获取动态网页已加入请求头仍然406错误

问题相关代码,请勿粘贴截图
import requests
import json

url = 'https://kd.nsfc.gov.cn/api/baseQuery/completionQueryResultsData'
header = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.81 Safari/537.36",
        "Referer": "https://kd.nsfc.gov.cn/finalSearchList?inputJson=%7B%22code%22%3A%22A04%20%E7%BB%9F%E8%AE%A1%E4%B8%8E%E8%BF%90%E7%AD%B9%22,%22conclusionYear%22%3A%222020%22,%22dependUnit%22%3A%22%22,%22keywords%22%3A%22%22,%22pageNum%22%3A0,%22pageSize%22%3A5,%22personInCharge%22%3A%22%22,%22projectName%22%3A%22%22,%22projectType%22%3A%22218%22,%22subPType%22%3A%22%22,%22psPType%22%3A%22%22,%22ratifyNo%22%3A%22%22,%22ratifyYear%22%3A%22%22%7D",
        "Accept": "application / json, text / plain, * / *",
        "Accept-Encoding": "gzip, deflate, br",
        "Accept-Language": "zh-CN,zh;q=0.9",
        "Origin": "https://kd.nsfc.gov.cn",
        "Content-Type": "application/json;charset=UTF-8",
        "Host": "kd.nsfc.gov.cn",
        "Cookie": "LoginAuth={%22authKey%22:%228C1umnrzbWL87FDa5yEOFDVQg%252FPwuZMs5lZZWn2H9Umydg6kYGHE4Q%253D%253D%22%2C%22sessionId%22:%22v9Dqh8yDjR2MQvWbbQBkXlvFGW2RDzyPzT2d7MhTB1DYB20hv2Ps!1263180705!1643948227122%22%2C%22targetUrl%22:%22https://kd.nsfc.gov.cn/api/isisnauth/loginback?pageN=/unitDetails?id=22879a058387f230e62c80f270822831%22%2C%22token%22:%22tcetc09SVxLnXnz2jm6kqKWZOKFg3n7vEqpusiOhLtA%253D%22%2C%22sid%22:%22hx%252BlHEsJ3wbNRV49Vxt1SA4NPDbrEZYJKYCxpLiHqPhdsKb0E%252F0TvNm1haMYAMreL8b%252F1luzfq0y1d%252Fnirws0uIwxcFWmg8pBm5yw%252BzWjRU%253D%22}",
        "Connection": "keep-alive",
        "Content-Length": "263"

}
data = {
        "code": "A04", "complete": "true", "conclusionYear": "2020", "dependUnit": "", "keywords": "", "pageNum": 0, "pageSize": 5, "personInCharge": "", "projectName": "", "projectType": "218", "subPType": "", "psPType": "", "ratifyNo": "", "ratifyYear": "", "order": "approveYear", "ordering": "desc"
}
data = json.dumps(data)
content = requests.post(url=url, headers=header, data=data)
print(content.status_code)import requests
import json

url = 'https://kd.nsfc.gov.cn/api/baseQuery/completionQueryResultsData'
header = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.81 Safari/537.36",
        "Referer": "https://kd.nsfc.gov.cn/finalSearchList?inputJson=%7B%22code%22%3A%22A04%20%E7%BB%9F%E8%AE%A1%E4%B8%8E%E8%BF%90%E7%AD%B9%22,%22conclusionYear%22%3A%222020%22,%22dependUnit%22%3A%22%22,%22keywords%22%3A%22%22,%22pageNum%22%3A0,%22pageSize%22%3A5,%22personInCharge%22%3A%22%22,%22projectName%22%3A%22%22,%22projectType%22%3A%22218%22,%22subPType%22%3A%22%22,%22psPType%22%3A%22%22,%22ratifyNo%22%3A%22%22,%22ratifyYear%22%3A%22%22%7D",
        "Accept": "application / json, text / plain, * / *",
        "Accept-Encoding": "gzip, deflate, br",
        "Accept-Language": "zh-CN,zh;q=0.9",
        "Origin": "https://kd.nsfc.gov.cn",
        "Content-Type": "application/json;charset=UTF-8",
        "Host": "kd.nsfc.gov.cn",
        "Cookie": "LoginAuth={%22authKey%22:%228C1umnrzbWL87FDa5yEOFDVQg%252FPwuZMs5lZZWn2H9Umydg6kYGHE4Q%253D%253D%22%2C%22sessionId%22:%22v9Dqh8yDjR2MQvWbbQBkXlvFGW2RDzyPzT2d7MhTB1DYB20hv2Ps!1263180705!1643948227122%22%2C%22targetUrl%22:%22https://kd.nsfc.gov.cn/api/isisnauth/loginback?pageN=/unitDetails?id=22879a058387f230e62c80f270822831%22%2C%22token%22:%22tcetc09SVxLnXnz2jm6kqKWZOKFg3n7vEqpusiOhLtA%253D%22%2C%22sid%22:%22hx%252BlHEsJ3wbNRV49Vxt1SA4NPDbrEZYJKYCxpLiHqPhdsKb0E%252F0TvNm1haMYAMreL8b%252F1luzfq0y1d%252Fnirws0uIwxcFWmg8pBm5yw%252BzWjRU%253D%22}",
        "Connection": "keep-alive",
        "Content-Length": "263"

}
data = {
        "code": "A04", "complete": "true", "conclusionYear": "2020", "dependUnit": "", "keywords": "", "pageNum": 0, "pageSize": 5, "personInCharge": "", "projectName": "", "projectType": "218", "subPType": "", "psPType": "", "ratifyNo": "", "ratifyYear": "", "order": "approveYear", "ordering": "desc"
}
data = json.dumps(data)
content = requests.post(url=url, headers=header, data=data)
print(content.status_code)

运行结果及报错内容

406

我的解答思路和尝试过的方法

加入多个请求头,反复尝试

我想要达到的结果

正确获得网页内容

  • 写回答

2条回答 默认 最新

  • 坚持不懈的大白 前端领域优质创作者 2022-02-04 21:39
    关注

    楼主的代码有点小问题哈!你看一下的请求头header字段Accept值和浏览器里面的是不是一样哈!正常代码如下:

    import requests
    import json
     
    url = 'https://kd.nsfc.gov.cn/api/baseQuery/completionQueryResultsData'
    header = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.81 Safari/537.36",
            "Referer": "https://kd.nsfc.gov.cn/finalSearchList?inputJson=%7B%22code%22%3A%22A04%20%E7%BB%9F%E8%AE%A1%E4%B8%8E%E8%BF%90%E7%AD%B9%22,%22conclusionYear%22%3A%222020%22,%22dependUnit%22%3A%22%22,%22keywords%22%3A%22%22,%22pageNum%22%3A0,%22pageSize%22%3A5,%22personInCharge%22%3A%22%22,%22projectName%22%3A%22%22,%22projectType%22%3A%22218%22,%22subPType%22%3A%22%22,%22psPType%22%3A%22%22,%22ratifyNo%22%3A%22%22,%22ratifyYear%22%3A%22%22%7D",
            "Accept": "application/json,text/plain,*/*",
            "Accept-Encoding": "gzip, deflate, br",
            "Accept-Language": "zh-CN,zh;q=0.9",
            "Origin": "https://kd.nsfc.gov.cn",
            "Content-Type": "application/json;charset=UTF-8",
            "Host": "kd.nsfc.gov.cn",
            "Cookie": "LoginAuth={%22authKey%22:%228C1umnrzbWL87FDa5yEOFDVQg%252FPwuZMs5lZZWn2H9Umydg6kYGHE4Q%253D%253D%22%2C%22sessionId%22:%22v9Dqh8yDjR2MQvWbbQBkXlvFGW2RDzyPzT2d7MhTB1DYB20hv2Ps!1263180705!1643948227122%22%2C%22targetUrl%22:%22https://kd.nsfc.gov.cn/api/isisnauth/loginback?pageN=/unitDetails?id=22879a058387f230e62c80f270822831%22%2C%22token%22:%22tcetc09SVxLnXnz2jm6kqKWZOKFg3n7vEqpusiOhLtA%253D%22%2C%22sid%22:%22hx%252BlHEsJ3wbNRV49Vxt1SA4NPDbrEZYJKYCxpLiHqPhdsKb0E%252F0TvNm1haMYAMreL8b%252F1luzfq0y1d%252Fnirws0uIwxcFWmg8pBm5yw%252BzWjRU%253D%22}",
            "Connection": "keep-alive",
            "Content-Length": "263"
     
    }
    data = {
            "code": "A04", "complete": "true", "conclusionYear": "2020", "dependUnit": "", "keywords": "", "pageNum": 0, "pageSize": 5, "personInCharge": "", "projectName": "", "projectType": "218", "subPType": "", "psPType": "", "ratifyNo": "", "ratifyYear": "", "order": "approveYear", "ordering": "desc"
    }
    data = json.dumps(data)
    content = requests.post(url=url, headers=header, data=data)
    print(content.status_code)
    print(content.text)
    

    运行结果:

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月13日
  • 已采纳回答 2月5日
  • 创建了问题 2月4日