位置: IT常识 - 正文
推荐整理分享Python实战-新能源王者宁德时代股权穿透研究(附完整代码)(新版python),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:python 3.9新功能,python energy,最新python教程,python energy,python新功能,python _new_,python _new_,python新技术,内容如对您有帮助,希望把文章链接给更多的朋友!
继上一篇对贵州茅台和华能信托的股权穿透研究后,又持续对代码做了优化更新,本篇研究新能源王者宁德时代
目录1、查找网站爱企查2、搜索新能源王者宁德时代2.1 company_name 参数是:宁德时代2.2 要加sleep,有可能因为网速原因,页面没加载完,这个根据实际情况来增加这个时间的长短2.3 可能会报webdriver浏览器驱动和浏览器版本不一致的问题,可以参考我的另外文章:3、定位筛选第一个公司:宁德时代4、股权穿透到第一层5、股权穿透到第二层1、查找网站爱企查首先选择好查公司股权的网站,这里选择爱企查:https://aiqicha.baidu.com/s?q=
这是网站的首页,默认查企业
2、搜索新能源王者宁德时代那接下来就是搜索新能源王者宁德时代: 代码如下:
browser = webdriver.Chrome()url = 'https://xin.baidu.com/s?q=' + company_namebrowser.get(url)time.sleep(2) # 休息2秒,防止页面没加载完data = browser.page_source上面代码中有几个注意点:
2.1 company_name 参数是:宁德时代2.2 要加sleep,有可能因为网速原因,页面没加载完,这个根据实际情况来增加这个时间的长短2.3 可能会报webdriver浏览器驱动和浏览器版本不一致的问题,可以参考我的另外文章:chrome浏览器版本和Chromedriver不匹配问题解决办法
Chrome浏览器关闭自动更新
3、定位筛选第一个公司:宁德时代通过上面的代码,可以搜索出很多跟宁德时代相关的公司: 代码中实现如下:
p_href = '<h3 data-v-387da8b0="" class="title"><a data-v-387da8b0="" target="_blank" href="(.*?)"'href = re.findall(p_href, data)获取了所有跟宁德时代相关的公司,我们要取得第一个,代码如下:
p_href = '<h3 data-v-387da8b0="" class="title"><a data-v-387da8b0="" target="_blank" href="(.*?)"'href = re.findall(p_href, data)url2 = 'https://xin.baidu.com' + href[0]browser.get(url2)time.sleep(2) # 休息2秒,防止页面没加载完data = browser.page_sourcetable = pd.read_html(data)df = table[1]browser.quit() # 退出模拟浏览器4、股权穿透到第一层可以看到宁德时代的股东很多,第一大股东是: 宁波梅山保税港区瑞庭投资有限公司
这里面我们继续对第一大股东进行穿透:
company = df['股东名称'][0]company_split = company.split(' ')for i in company_split: if '实际控制人' in i: print(company) break if i.startswith("TA有"): continue if i.startswith("实际控制人"): continue if len(i) > 6: # 不要用if '有限公司' in i,这个不太好,例如国资委不含有“有限公司 ”字样 return i会把宁波梅山保税港区瑞庭投资有限公司返回,继续对宁波梅山保税港区瑞庭投资有限公司进行穿透研究
5、股权穿透到第二层对宁波梅山保税港区瑞庭投资有限公司进行穿透研究,可以看到
可以看到宁波梅山保税港区瑞庭投资有限公司的第一大股东是曾毓群,其实继续执行了上述代码。
打印结果是:
宁波梅山保税港区瑞庭投资有限公司曾 曾毓群 TA有5家企业 >大股东 实际控制人最终受益人55.0Process finished with exit code 0完整代码如下:
#!/usr/bin/env python# coding: utf-8# In[1]:from selenium import webdriverimport reimport timeimport pandas as pddef baidu(company_name): browser = webdriver.Chrome() url = 'https://xin.baidu.com/s?q=' + company_name browser.get(url) time.sleep(2) # 休息2秒,防止页面没加载完 data = browser.page_source p_href = '<h3 data-v-387da8b0="" class="title"><a data-v-387da8b0="" target="_blank" href="(.*?)"' href = re.findall(p_href, data) url2 = 'https://xin.baidu.com' + href[0] browser.get(url2) time.sleep(2) # 休息2秒,防止页面没加载完 data = browser.page_source table = pd.read_html(data) df = table[1] browser.quit() # 退出模拟浏览器 company = df['股东名称'][0] company_split = company.split(' ') for i in company_split: if '实际控制人' in i: print(company) break if i.startswith("TA有"): continue if i.startswith("实际控制人"): continue if len(i) > 6: # 不要用if '有限公司' in i,这个不太好,例如国资委不含有“有限公司 ”字样 return i num_sum = 0.0 num = 0 for i in df['持股比例']: if i == '-': num = 1 break i = float(i[0:-6]) # 清除百分号,并转为浮点数 print(i) num_sum = i + num_sum num += 1 if num_sum > 80: break #print("持股比例:", num) # In[17]: for i in range(num): company_i = df['股东名称'][i] company_split = company_i.split(' ') for j in company_split: if '有限公司' in j: print(j)company = '宁德时代'while True: try: company = baidu(company) print(company) except: breakcompany上一篇:Vue中splice()方法:实现对数组进行增删改的操作(vue的slice)
下一篇:Ep_操作系统面试题-什么是协程(erp面试题目100及最佳答案)
友情链接: 武汉网站建设