我们经常会碰到需要了解一家企业的网上公开信息。我们通过企业关键词在天眼查搜索,获取企业统一信用代码为例。
先看效果图,通过企业名称列表,批量抓取对应的统一信用代码。
首先我们找到天眼查的详情页链接https://www.tianyancha.com/company/公司代码,其中公司代码就是变量,我们需要替换查询的。
那如何获取公司代码呢?我们可以通过搜索公司名称来获取。
https://www.tianyancha.com/search?key=公司名称
有了这个概念,我们基本上就可以得出如何获取的理论流程了。先通过公司名称获取到公司代码,然后通过公司代码再去获取纳税人识别号。
那我们现在开始一步一步来进行实践操作。
建立一个我们需要查询的企业名称列表,然后倒入到Power Query。
直接抓取搜索页结果,转换成二进制格式,形成一个list并展开。
通过查找源代码,找到企业代码关键词所在的代码行。我们发现包含前缀关键词
href="https://www.tianyancha.com/company
我们可以在展开的表中筛选包含这个关键词的行,得到如下结果。
我们看到搜索出来有好几个,这个主要是通过模糊匹配出来的,一般而言我们我们通过特定企业名来搜索的话只需要取第一个即可。所以我们可以通过删除重复项来获得第一行的值。
随后我们通过提取分隔符之间的文本来得到我们需要的企业代码。
href="https://www.tianyancha.com/company/2323793835"target='_blank'
得到企业代码后,我们在通过类似的操作,把代码作为变量获取详细页的源码。并观察详细页源码找到我们需要关键词所在的位置。
重复之前的操作,我们可以把纳税人识别号给提取出来。先筛选所在行关键词,再通过提取分隔符之间的文本来提取我们所要的信息。
这样是不是就好了呢?很多时候我们这样确实是好了,但是会碰到一个问题,因为搜索页面出来的结果是模糊匹配,虽然搜索结果出来的第一个很大概率是我们所需要的,但是不可避免会未找到我们搜索的企业信息,那第一个匹配的就会错误。这样我们还需要通过进一步的验证。
我们回到详细页的界面,从源代码中抓取企业名称,方法还是大同小异,抓取后我们和我们自己提供的企业名称列表进行一次比对,把匹配结果不正确的给筛选掉,只留下匹配结果正确的。
最终删除其他不需要的列,并返回上载到工作表中即可得到我们最初演示的效果。
,