怎么使用天眼查api授权调取企业信息,java

2406人阅读
摘要:&一、常规抓包分析 比如要爬取企业注册信息查询_企业工商信息查询_企业信用信息查询平台_发现人与企业关系的平台-天眼查该页面的基础信息。 通过火狐浏览器抓包,可以发现,所要数据都在下图的json文件里 查看其请求 伪装成浏览器爬取该文件: 伪装成浏览器爬取该文件: import requests header = { 'Host': 'www.
一、常规抓包分析
比如要爬取该页面的基础信息。
通过火狐浏览器抓包,可以发现,所要数据都在下图的json文件里
查看其请求
伪装成浏览器爬取该文件:
伪装成浏览器爬取该文件:
import requests
header = {
'Host': '',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/ Firefox/50.0',
'Accept': 'application/json, text/plain, */*',
'Accept-Language': 'zh-CN,q=0.8,en-US;q=0.5,q=0.3',
'Accept-Encoding': 'gzip, deflate',
'Tyc-From': 'normal',
'CheckError': 'check',
'Connection': 'keep-alive',
'Referer': '/company/',
'Cache-Control': 'max-age=0'
'Cookie': '_pk_id.1.e431=5379bad64f3da16d..5...; Hm_lvt_e92c8d65d92d534b0fc290df538b958,,,; _pk_ref.1.e431=%5B%22%22%2C%22%22%2C%2C%22https%3A%2F%%2Flink%3Furl%3D95IaKh1pPrhNKUe5nDCqk7dJI9ANLBzo-1Vjgi6C0VTd9DxNkSEdsM5XaEC4KQPO%26wd%3D%26eqid%3Dfffe7d7e7%22%5D; aliyungf_tc=AQAAAJ5EMGl/qA4AKfa/PDGqCmJwn9o7; TYCID=d6e00ec9b9ee485d84f0f; tnet=60.191.246.41; _pk_ses.1.e431=*; Hm_lpvt_e92c8d65d92d534b0fc290df538b045; token=d42c3bb10c4bc1d48bc80; _utm=55dbdbb204abfe674a767; RTYCID=ce467d881053bab1a62c3a'
r = requests.get('/company/.json', headers=header)
print(r.text)
print(r.status_code)
返回结果如下:
状态码为403,常规爬取不成功。考虑下面一种方式。
二、使用selenium+PHANTOMJS获取数据
首先下载phantomjs到本地,并将phantomjs.exe存放在系统环境变量所在目录下(本人讲该文件放置在D:/Anaconda2/路径下)。
为phantomjs添加useragent信息(经测试,不添加useragent信息爬取到的是错乱的信息):
from selenium import webdriver
from mon.desired_capabilities import DesiredCapabilities
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap[&phantomjs.page.settings.userAgent&] = (
&Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/ Firefox/50.0&
driver = webdriver.PhantomJS(executable_path='D:/Anaconda2/phantomjs.exe', desired_capabilities=dcap)
获取网页源代码:
driver.get('/company/')
#等待5秒,更据动态网页加载耗时自定义
time.sleep(5)
# 获取网页内容
content = driver.page_source.encode('utf-8')
driver.close()
print(content)
对照网页,爬取的源代码信息正确,接下去解析代码,获取对应的信息。
简单写了下获取基础信息的代码:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from selenium import webdriver
import time
from bs4 import BeautifulSoup
from mon.desired_capabilities import DesiredCapabilities
def driver_open():
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap[&phantomjs.page.settings.userAgent&] = (
&Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/ Firefox/50.0&
driver = webdriver.PhantomJS(executable_path='D:/Anaconda2/phantomjs.exe', desired_capabilities=dcap)
return driver
def get_content(driver,url):
driver.get(url)
#等待5秒,更据动态网页加载耗时自定义
time.sleep(5)
# 获取网页内容
content = driver.page_source.encode('utf-8')
driver.close()
soup = BeautifulSoup(content, 'lxml')
return soup
def get_basic_info(soup):
company = soup.select('pany_info_text & p.ng-binding')[0].text.replace(&\n&,&&).replace(& &,&&)
fddbr = soup.select('.td-legalPersonName-value & p & a')[0].text
zczb = soup.select('.td-regCapital-value & p ')[0].text
zt = soup.select('.td-regStatus-value & p ')[0].text.replace(&\n&,&&).replace(& &,&&)
zcrq = soup.select('.td-regTime-value & p ')[0].text
basics = soup.select('.basic-td & .c8 & .ng-binding ')
hy = basics[0].text
qyzch = basics[1].text
qylx = basics[2].text
zzjgdm = basics[3].text
yyqx = basics[4].text
djjg = basics[5].text
hzrq = basics[6].text
tyshxydm = basics[7].text
zcdz = basics[8].text
jyfw = basics[9].text
print u'公司名称:'+company
print u'法定代表人:'+fddbr
print u'注册资本:'+zczb
print u'公司状态:'+zt
print u'注册日期:'+zcrq
# print basics
print u'行业:'+hy
print u'工商注册号:'+qyzch
print u'企业类型:'+qylx
print u'组织机构代码:'+zzjgdm
print u'营业期限:'+yyqx
print u'登记机构:'+djjg
print u'核准日期:'+hzrq
print u'统一社会信用代码:'+tyshxydm
print u'注册地址:'+zcdz
print u'经营范围:'+jyfw
def get_gg_info(soup):
ggpersons = soup.find_all(attrs={&event-name&: &company-detail-staff&})
ggnames = soup.select('table.staff-table & tbody & tr & td.ng-scope & span.ng-binding')
# print(len(gg))
for i in range(len(ggpersons)):
ggperson = ggpersons[i].text
ggname = ggnames[i].text
print (ggperson+& &+ggname)
def get_gd_info(soup):
tzfs = soup.find_all(attrs={&event-name&: &company-detail-investment&})
for i in range(len(tzfs)):
tzf_split = tzfs[i].text.replace(&\n&,&&).split()
tzf = ' '.j
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:68672次
积分:1254
积分:1254
排名:千里之外
原创:15篇
转载:277篇
评论:13条
(6)(65)(49)(31)(3)(52)(54)(26)(8)}

我要回帖

更多关于 天眼查api接口下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信