记录我是如何转型大数据分析——爬虫扒扒知乎公司信息

浏览: 2087

Clipboard Image.png

我知道,想转型金融大数据分析没有大数据处理的背景,没有计算机专业背景,很难打动一家公司。所以我需要将我学的技能展示出来。大数据征信是我认为有机地结合了大数据分析和风险管理,这两个就是我自己很想发展的方向。

当我认识了VBA,Python,SQL之后,我认识到了新的世界。不是计算机背景出生的我,开始对这些语言有了兴趣。但是我学语言不是为了成为一名码农,我想转型做一名数据分析者,好听的也被称为数据科学家。

从小老师就会问,长大以后你要做什么。懵懂的我记得说过“科学家”。长大以后发现,化学科学家,物理科学家,这些职称离我是越来越远了,但是数据科学家感觉离我不是那么遥远,也许我只是刚刚踏入数据分析,还没有真真领会数据分析的博大精深。

但是在没有任何可以直接使用数据的情况下,让我为一家公司征信。首先我需要了解这家公司,现在工商信息逐渐透明化,这类信息还是很好搜集的。我就打算用python做一个简单爬虫。数据源来自#天眼查#

这个记录的是新手视角,我尽量将每一个代码写得详细点,我知道我不是大神,但是我知道我在往大神的路上前进。

1、分析网站 企业注册信息查询_企业工商信息查询_企业信用信息查询平台_发现人与企业关系的平台-天眼查 我用知乎(北京智者天下科技有限公司)来做示范。我抓取了股东信息,核心人物,变更信息这块内容。分析之后

股东信息在网站:http://www.tianyancha.com/expanse/holder.json

核心成员信息在网站:http://www.tianyancha.com/expanse/findTeamMember.json

变更信息在网站:http://www.tianyancha.com/expanse/changeinfo.json

2、制作request

我这里使用requests库

#coding:utf-8
#如果需要打中文,记得最前面告诉python你的编码
import requests

#采集股东信息网站#
url = 'http://www.tianyancha.com/expanse/holder.json'


#我们需要模拟访问header(如上图,我们可以从中挑选几个,不嫌烦的话也可以全都复制哈)
header={'Accept':'application/json, text/plain, */*',
'Accept-Encoding':'gzip, deflate, sdch',
'Referer':'http://www.tianyancha.com/company/408377727',
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}

因为这里在发送请求的时候需要传递参数(看下图右下query string parameter)


para = {"id":33934422,
"ps":20,
"pn":1}

req = requests.get(url,headers=header,params=para)
print req.url
print req.status_code

不出意外的话,返回的应该是你要的网站,以及200表示访问成功。

#因为数据是以json的格式储存,用.json来解析
js = req.json()

#js是dict格式,我们可以用key,value来历遍js里面的数据
for key,value in js.items():
print "key:",key,"value:",value


首先看到这个不要紧张,这是unicode编码,并不是得到的东西不正确,紧接着我们看,在第二个value里面的result有我们需要的信息。所以我们直接定位到data这个key

js["data"]

现在我们读取到的信息就是我选中的部分,还可以看到选中部分又是一个dict,我们也可以直接用js["data"]["result"]定位到result中的信息。聪明的你也注意到了js["data"]["result"]得到的是一个list,list里面包含了dict。

for items in js['data']['result']:
print items


这里我截取了一部分信息,你可以看到每一个items是以dict形式出现,里面包含了category,name,legalPersonName等信息。总算要的东西都在啦

开心!!注意到有的股东信息中,没有法人名字,所以这里我加了一个try。

for items in js['data']['result']:
print "股东名字:",items['name']
try:
#“\n”是换行符号
print "法人名字:",items['legalPersonName'],"\n"
except:
print "空" ,"\n"


哈哈,就是这么简单的提取了我们需要的信息啦。之后的核心成员,变更信息也可以依样画葫芦,主要在发送请求时,参数是不一样的。

这里是我最后的获取信息。方便阅读可以在相应模块之间加上

print "=====================xxxx信息====================="


有了这些信息之后,我们会对公司有一个基本了解。公司后背是有哪些公司支撑,公司里的核心力量是什么,如果是技术类创新,是否有足够牛逼的技术背景,学术背景。还有变更时间中,了解到公司的经营范围,投资股权变更。

对于有法律事件的公司,天眼查网站中的法律诉讼,法律公告模块也是值得参考的。之前的一些不良记录,对于公司的征信也有很大的帮助。

有兴趣的朋友,可以将获取每个信息模块做成函数。每次调用的时候只需要更改几个变量就行。哈哈,每次做一个项目,然后将它一步一步的分享给大家,我都感觉又一次学习。

推荐 2
本文由 生活缺乏心跳 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册