python爬虫爬取知识库,json报文无法完整获取
最近想把统信uos的问题库离线化,在爬取过程中发现无法获取完整的返回,无论使用httpx还是用requests。也试过selenium,同样的结果。其中有意思的是firefox中对响应报文提示响应已截断,chrome没有类似提示也能够完整的获取json响应内容。import httpx
import json
from bs4 import BeautifulSoup
def getHtml():
data = []
header = {"User-Agent": "Chrome/96.0.4664.45 Safari/537.36"}
url = "https://ecology.chinauos.com/adaptidentification/uos/knowledge/everyoneget?parent=%E7%B3%BB%E7%BB%9F%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98&type=%E5%85%B6%E4%BB%96%E7%B3%BB%E7%BB%9F%E9%97%AE%E9%A2%98&"
try:
resp = httpx.get(url, headers = header)
finally:
resp.close()
print(resp.content)
def dataReact(html):
soup = BeautifulSoup(html,'lxml')
print(soup.prettify())
if __name__ == '__main__':
textHtml = []
html = getHtml() 我看得到1278项,这也不完整吗? 不完整,03003-00105 过去的云雾 发表于 2021-11-22 13:32
不完整,03003-00105
03003-00105是指什么? 本帖最后由 过去的云雾 于 2021-11-23 11:01 编辑
suchocolate 发表于 2021-11-22 14:07
03003-00105是指什么?
我错了,好像只有1278条数据 过去的云雾 发表于 2021-11-23 10:56
我错了,好像只有1278条数据
是不是还有下一页的url,访问那一页才能得到后面的数据? suchocolate 发表于 2021-11-23 12:00
是不是还有下一页的url,访问那一页才能得到后面的数据?
没有了,就是这个页面 过去的云雾 发表于 2021-11-23 13:33
没有了,就是这个页面
那接下来处理这些数据就可以了。 suchocolate 发表于 2021-11-23 13:38
那接下来处理这些数据就可以了。
请看一下原贴中的截图,python库取回的结果不完整,报文被截断了 过去的云雾 发表于 2021-11-23 14:55
请看一下原贴中的截图,python库取回的结果不完整,报文被截断了
我没有httpx库,用requests库爬下来保存文件看,数据全的。
import requests
def main():
url = "https://ecology.chinauos.com/adaptidentification/uos/knowledge/everyoneget?parent=%E7%B3%BB%E7%BB%9F%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98&type=%E5%85%B6%E4%BB%96%E7%B3%BB%E7%BB%9F%E9%97%AE%E9%A2%98&"
headers = {'user-agent': 'firefox'}
r = requests.get(url, headers=headers)
with open('r.txt', 'w', encoding='utf-8') as f:
f.write(r.text)
if __name__ == '__main__':
main()
你把你用httpx下载的页面保存成文本看看呢,可能显示上会有截取。 suchocolate 发表于 2021-11-23 15:25
我没有httpx库,用requests库爬下来保存文件看,数据全的。
你把你用httpx下载的页面保存成文本看看呢 ...
可以获取到,谢谢
页:
[1]