使用json.loads(resp.text)时期待一个value,不知道怎么解决
# Author:yxr998
import json
import random
import time
import urllib.request
import urllib.parse
from base64 import b64encode,b64decode
import openpyxl
import requests
from scrapy import Selector
import ssl
from lxml import etree
import scrapy
import parsel
url='https://www.rdfybk.com/Qw/MutilSearchTow'
headers={
'Accept': '*/*',
'Accept-Encoding': 'gzip, deflate',
'Connection': 'keep-alive',
'Content-Length': '328',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Cookie': 'zlzx_rucid=8d95af7e-6291-4a19-87a7-e0730d7bb32d; pubLogin=AUHQmY4xsZXWogl4SviKfgptPvkuuJyXWWgLoGU25BnQ4mi5tHyx1KGPJu9QkwakLKDuJmGZLmzMvk1FlwLFZ+Esv2k+bTygl2AJM4aYYi8vIwnhFifbM0DwSVO9hfe/FVmGHRjY8bST4Pc97Gef0QUJTw9cDEtjPC7HtNhlipJkXS3fwWhDhOKi9g20voONx5OtZpcRb3QX5w1JC6JeGDVwu4x9xS6woei4nyMHOE1pLMOjizYmpjfi8t9haCcszWA0Fv78ziIfZ11h1OxdHYdW0WQN3mDjkTqfAArwsnb7Z1aOWDVUhxh3eIZDEmD+OfzhH4aFuqg9mFDdE1+5vg==; zlzx=grq3mngnyfx4vnknfg431cuu; Hm_lvt_d65aa0a1842ece7f67bf6d6a3ea01e92=1680979182,1680980135,1682267698,1682346354; Hm_lpvt_d65aa0a1842ece7f67bf6d6a3ea01e92=1682350969',
'Host': 'www.rdfybk.com',
'Origin': 'http://www.rdfybk.com',
'Referer': 'http://www.rdfybk.com/home/allsearch?s0=0&s1=%E8%82%BA%E7%82%8E&s9=%E4%B8%BB%E9%A2%98%E8%AF%8D',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest',
}
wb = openpyxl.Workbook()
ws =wb.active
ws.title = '肺癌'
ws.append(( '标题', '时间', '链接','作者'))
wb_data=[]
name="肺炎"
query=input("请输入您的内容:")
main_url="http://www.rdfybk.com/Qw/MutilSearchTow"
formatdata={
'data':'{"TreeCode":"","StartYear":"1995","EndYear":"2023","ListSearchCondition":[{"Type":"0","KeyWord":“query”,"RelationShip":"1"}],"Order":"","PageSize":100,"PageIndex":1,"IsBuy":0}',
'syfl':'QwWzBk',
}
resp=requests.post(url=url,headers=headers,data=formatdata)
jsondata=json.loads(resp.text)
print(jsondata)
data=jsondata.get("ListArticle")
#print(data)
for item in data:
link=main_url+str(item.get('Id'))
title=item.get('Title')
author=item.get('Author')
year=item.get('PdcYear')
wb_data.append(( str(title), year, str(link), str(author)))
# print(wb_data)
for i in wb_data:
ws.append(i)
#print(item)
wb.save(name + '数据.xlsx')
第43行返回的内容是html格式的,就不是有效的json格式,所以json.loads报错了。检查下你的请求
有帮助的话,请点采纳该答案~