在信用中国网站爬取你想要查找的任何公司的所有相关信息
众所周知,小黄车的兴起速度非常快,但是它后来因为拖欠货款接近破产
2018年9月,因拖欠货款,ofo小黄车被凤凰自行车起诉 [8] ;同月,有网友反映称,在使用ofo小黄车APP时,充值押金或者退押金的时候被诱导消费。ofo相关负责人员介绍,不存在误导 [9] 。10月27日,又有媒体披露称ofo小黄车退押金周期再度延长,由原来1-10个工作日延长至1-15个工作日。 [10] 2018年10月至11月,ofo被北京市第一中级人民法院、北京市海淀区人民法院等多个法院的多个案件中列入被执行人名单,涉及执行超标的5360万元。 [11] 2019年2月23日,天眼查数据显示,天津科林自行车有限公司(以下简称“天津科林”)与北京拜克洛克科技有限公司(ofo关联公司,以下简称“拜克洛克”)买卖合同纠纷一审民事裁定书显示,法院冻结拜克洛克银行存款145万元或查封其他等额财产。
接下来我们开始去信用中国网站去查找北京拜克洛克科技有限公司的相关信息,看看能爬取道什么样的信息
目录
1.操作流程
(1)进入信用中国网页
https://www.creditchina.gov.cn/
(2)查找北京拜克洛克科技有限公司,进入列表页
获取到页表页上的所有公司
(3)点击要选择的公司,进入详情页
获取该公司详情页上的信息
2.分析过程
当我们请求的时候,不能直接获取到数据,这个时候想到可能是ajax加载
(1)详情页
我们在请求详情页的时候,发现请求头的url里面有一个参数,这个参数的值很明显是加过密的,此时我们应该想一想这个参数是怎么来的?
先请求列表页,再请求详情页
详情页中要请求的东西很可能是列表页中响应回来的,所以去列表页的response找一下
(2)列表页
首先分析列表页的response
很明显,我们在这里看到了我们的详情页需要的参数,通过json格式,获取到这个参数的值,传到详情页的url上
分析列表页的headers
列表页进行请求的时候,除了我们在地址栏上也能看到的keyword以外,还有一个参数MmEwMD,并且这个参数也是加过密的
和详情页的分析一样,我们也需要去列表页的上一页请求的response去看一下,这个参数是什么情况
(3)首页
首页的response没有可用的数据的响应,这个参数不需要我们提供,所以就不用管它了。
3.代码实现
import requests
name = input('请输入要查找的公司名称:')
print('以下是为您查找到的结果:')
url = 'https://www.creditchina.gov.cn/api/credit_info_search?keyword={}&templateId=&page=1&pageSize=10 & MmEwMD=3tJkMlBl4MJ8Js0zyUpNKRhtpCeIgoBsqdssx5MPBAS.4N9SZotyWiq6As.S1AosNEvlrc0jepi1Qsm0iFTB57gZNxqMNBUBxHMeo3cASFibEjD4JqOlmLj.Y0RggYsG1uLAOOvljLHQZBA31Z6ku8ZVCPF3qnEuBEBWsVmdebb503KEX31lz_i7P_J.Q.L3vlwC_P9nsC.mWh8vLr5PplwerryLF3UGPQk0pKwpBz3cbRZ6inJXsX_6yvRYYptOCE1tahzd7hj7sNqdxf_y0Y2WIszgwZu6ZGikVI1mJ5kIgE9Z3y6b4Ly8J_3Z5tyhCBSfcC.3NTM75HGOI.iJjADNg'.format(
name)
# 模仿浏览器请求
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36',
}
response = requests.get(url=url, headers=headers)
info_list = response.json()['data']['results']
i = 0
for info in info_list:
i += 1
print('第%s项' % i)
print('=======================================================')
print(info['name'])
# print(info['encryStr'])
url = 'https://www.creditchina.gov.cn/api/credit_info_detail?encryStr=' + info['encryStr']
response = requests.get(url=url, headers=headers)
info = response.json()['result']
# print(info)
print("工商注册页:" + str(info['regno']) + '\n' + '法人信息:' + info['legalPerson'] + '\n' + '成立时间:' + info[
'esdate'] + '\n' + '企业类型:' + info['enttype'] + '\n' + '登记机关:' + info['dom'])
print('======================================================')
with open('company.txt','a',encoding='utf-8') as fp:
fp.write('第%s项' % i+'\n'+"工商注册页:" + str(info['regno']) + '\n' + '法人信息:' + info['legalPerson'] + '\n' + '成立时间:' + info[
'esdate'] + '\n' + '企业类型:' + info['enttype'] + '\n' + '登记机关:' + info['dom']+'\n')
4.效果展示
数据太多了,在这里我只放一部分截图
祝你好运!!!