穿胖次的夏雨来 2021-02-21 19:08 采纳率: 16.7%
浏览 47

python对json数据进行爬取,现有代码有点笨,代码是否有其他方法实现

代码如下

import requests
import json
import re
import jsonpath
import pandas as pd




headers = {
        'Connection': 'keep-alive',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
        'Accept': '*/*',
        'Referer': 'http://data.eastmoney.com/',
        'Accept-Language': 'zh-CN,zh-TW;q=0.9,zh;q=0.8,en-US;q=0.7,en;q=0.6',
    }

url = 'http://push2.eastmoney.com/api/qt/stock/fflow/kline/get?cb=jQuery1123010658079990618585_1613899835088&lmt=0&klt=1&fields1=f1%2Cf2%2Cf3%2Cf7&fields2=f51%2Cf52%2Cf53%2Cf54%2Cf55%2Cf56%2Cf57%2Cf58%2Cf59%2Cf60%2Cf61%2Cf62%2Cf63%2Cf64%2Cf65&ut=b2884a393a59ad64002292a3e90d46a5&secid=0.002594'
html = requests.get(url,headers = headers)

# content = html.text
# print(type(content))
content = re.findall(r'^jQuery\w+\((.+)\);$',html.text)[0]
data = json.loads(content)
# print(data)
net_amount_list1 = jsonpath.jsonpath(data, '$..0')
stock1 = net_amount_list1[1].split(',')
net_amount_list2 = jsonpath.jsonpath(data, '$..1')
stock2 = net_amount_list2[1].split(',')

# time = []
# time.append(stock1[0])
# time.append(stock2[0])
#
# a = []
# a.append(stock1[1])
# a.append(stock2[1])
datas = {'时间':[stock1[0],stock2[0]],
         '主力净流入':[stock1[1],stock2[1]],
         '超大单净流入':[stock1[5],stock2[5]],
         '大单净流入':[stock1[4],stock2[4]],
         '中单净流入':[stock1[3],stock2[3]],
         '小单净流入':[stock1[2],stock2[2]]
         }

# print(datas)
df = pd.DataFrame(datas)
df.to_excel('east_money.xlsx')

这是现有代码,只对其中两条数据进行了获取,但是json返回的数据有两百多条,感觉这样写有点笨,是否有更好的方法优化

  • 写回答

3条回答 默认 最新

  • 穿胖次的夏雨来 2021-02-21 19:09
    关注

    返回要获取的数据如图

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题