查看原文
其他

JSON帮手,FeHelper

爬虫俱乐部 Stata and Python数据分析 2023-10-24

本文作者:王思雨,中南财经政法大学金融学院

本文编辑:周一鸣

技术总编:王玉婷

Stata and Python 数据分析

爬虫俱乐部Stata基础课程Stata进阶课程Python课程可在小鹅通平台查看,欢迎大家多多支持订阅!如需了解详情,可以通过课程链接(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或课程二维码进行访问哦~
导读
在介绍FeHelper之前,我们先来看一看什么是Json。Json (即JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于编程语言的文本隔离来存储和表示数据。这种数据形式更容易人们阅读和编写,也更易于电脑解析,能够有效的提高工作效率。
FeHelper是一款谷歌浏览器插件。包含一些前端实用的工具,如字符串编解码、代码美化及压缩、JSON美化及比对、二维码生成器、编码规范检测、网页栅格标尺、网页性能检测、网页截屏等web前端开发的常见功能。
1. FeHelper的安装
首先我们需要安装以下FeHelper。有条件的读者可以直接在谷歌浏览器中的应用商店搜索FeHelper插件,点击“添加至Chrome”即可。如果无法打开Chrome应用商店,可以通过网上的其他途径获取该插件,再手动添加至谷歌浏览器即可。手动添加方法是:打开谷歌浏览器设置中的扩展程序,并开启开发者模式,将该插件拖拽到浏览器里。如果添加失败,可以选择“加载已解压的扩展程序”,将该文件夹先压缩再解压添加进去。

安装成功之后可以在扩展程序中找到该插件,这就代表我们能用了。

2. FeHelper具体使用
以豆瓣【最近热门电影】的数据为例,我们可以利用FeHelper实现JSON美化、比对以及Excel转JSON等目的。
(1)JSON美化工具



进入豆瓣电影官网,找到如下所示的最近热门电影:

进入开发者模式,寻找含有每个电影详细信息的url。这里我们爬取按热度排序的前50个电影所对应的名称和豆瓣评分。在包含电影信息的数据文件的预览中,找到了按热度排序的前50个电影信息,部分结果如下所示:

双击打开上述页面,可以发现数据在一个JSON文件中:

显然,原始的JSON格式非常难以阅读,对后续的数据提取工作造成了困难。此时,FeHelper就派上用场了:FeHelper能够自动检测页面上的JSON信息并格式化。此外,也可以利用FeHelper对JSON代码进行排序和下载,并且在高级定制中可以对页面的皮肤等进行个性化定制。FeHelper格式化后的JSON排版如下:

(2)JSON 比对工具
在FeHelper的配置项中找到JSON比对工具,以电影《巴比伦》和《黑豹2》为例,将两者的JSON代码复制到JSON比对工具中,FeHelper将自动将两者的代码进行比对并标注不同元素,结果如下:

(3)Excel转JSON
首先,我们获取豆瓣热门电影列表作为原始数据。我们利用requests库中get方法对该网站发起请求,将获取到的JSON转为字典后并提取电影名称、电影评分等字段。需要注意的是,运行程序时需要在请求头Headers中要加入Cookie以保持登录状态。Cookie的获取如下图所示:

具体的代码如下:
import requestsimport jsonimport csvimport pandas as pdurl='https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&page_limit=50&page_start=0'headers = { "Cookie": "复制你的cookie到这里就好",}params = { 'type': 'movie', 'tag': '热门', 'page_limit': '50', 'page_start': '0',}response = requests.get(url,params=params,headers=headers).textdatas = json.loads(response)result = []for data in datas['subjects']: rate = data['rate'] movie = data['title'] result.append([rate,movie]) print(rate,movie)df = pd.DataFrame(result, columns=['豆瓣评分', '剧名'])df.to_csv('电影.csv', encoding='utf-8-sig', index=False)
获得豆瓣热门电影的原始数据后,将输出结果储存在CVS文件中,部分结果如下图所示:

与此相反,FeHelper能够将Excel或CVS文件转换为结构化数据,如JSON、XML、MySQL、PHP等。我们将上述获取的原始数据的前10条记录复制到FeHelper的Excel/CVS转JSON工具中,自定义选择转换结果的格式。以JSON-Properties为例,转换后得到如下结果:

以上就是JSON帮手——Fehelper的介绍了,有了它的加持,我们在阅读JSON代码时能够更加省时省力,赶快来试试它吧!
END

重磅福利!为了更好地服务各位同学的研究,爬虫俱乐部将在小鹅通平台上持续提供金融研究所需要的各类指标,包括上市公司十大股东、股价崩盘、投资效率、融资约束、企业避税、分析师跟踪、净资产收益率、资产回报率、国际四大审计、托宾Q值、第一大股东持股比例、账面市值比、沪深A股上市公司研究常用控制变量等一系列深加工数据,基于各交易所信息披露的数据利用Stata在实现数据实时更新的同时还将不断上线更多的数据指标。我们以最前沿的数据处理技术、最好的服务质量、最大的诚意望能助力大家的研究工作!相关数据链接,请大家访问:(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或扫描二维码:

最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。





对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!







往期推文推荐 

最新、最热门的命令这里都有!

Python实现微信自动回复告诉python,我想“狂飙”了——线程池与异步协程为爬虫提速高级函数——map()和reduce()

Stata绘制条形图的进阶用法

快来看看武汉的房价是不是又双叒叕涨了!Python 常见内置函数(二)

Stata绘制饼形图的进阶用法

Python标准库--logging模块盲区探索——Stata的读写极限Camelot提取PDF表格:一页多表、多页一表

Stata绘图系列——条形图绘制

Python常见内置函数(一)Stata绘图系列——饼形图绘制【爬虫实战】深交所服务业年报数据

“挂羊头卖狗肉”?

Python与excel交互--xlsxwriter模块

cnmapsearch——离公司最近的快餐店在哪


     关于我们 

   微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

   武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。



此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。

投稿邮箱:statatraining@163.com投稿要求:1)必须原创,禁止抄袭;2)必须准确,详细,有例子,有截图;注意事项:1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。2)邮件请注明投稿,邮件名称为“投稿+推文名称”。3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存