python应用:selenium之爬取天眼查信息
Posted jpapplication
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python应用:selenium之爬取天眼查信息相关的知识,希望对你有一定的参考价值。
inform_table.py
1 # -*-coding:utf8-*- 2 3 from selenium import webdriver 4 from selenium.webdriver.common.proxy import Proxy 5 from selenium.webdriver.common.proxy import ProxyType 6 import time 7 from bs4 import BeautifulSoup 8 9 10 class InformTable: 11 def __init__(self): 12 self.proxy = Proxy({‘proxyType‘: ProxyType.MANUAL, ‘httpProxy‘: ‘115.153.15.128:45491‘}) 13 self.browser = webdriver.Firefox(proxy=self.proxy) 14 self.url = ‘https://www.tianyancha.com/‘ 15 self.user = ‘17862977887‘ 16 self.pwd = ‘oookkk09‘ 17 self.isFirstSearch = True 18 self.company = ‘‘ 19 20 self.url_dic = {‘New_Message‘: ‘/html/body/div[1]/div/span‘, 21 ‘New_submit‘: ‘/html/body/div[1]/div/i‘, 22 ‘Advertisement‘: ‘//*[@id="tyc_banner_close"]‘, 23 ‘get_login‘: ‘/html/body/div[1]/div/div[1]/div[1]/div/div/div[2]/div/div[4]/a‘, 24 ‘login_user_pwd‘: ‘/html/body/div[6]/div[2]/div/div[2]/div/div/div[3]/div[1]/div[2]‘, 25 ‘login_user‘: ‘/html/body/div[6]/div[2]/div/div[2]/div/div/div[3]/div[2]/div[2]/input‘, 26 ‘login_pwd‘: ‘/html/body/div[6]/div[2]/div/div[2]/div/div/div[3]/div[2]/div[3]/input‘, 27 ‘login_submit‘: ‘/html/body/div[6]/div[2]/div/div[2]/div/div/div[3]/div[2]/div[5]‘, 28 ‘login_state‘: ‘/html/body/div[1]/div/div[1]/div[1]/div/div/div[2]/div/div[4]/a‘, 29 ‘first_search_text‘: ‘//*[@id="home-main-search"]‘, 30 ‘first_search_submit‘: ‘/html/body/div[1]/div/div[1]/div[2]/div/div/div[2]/div[2]/div[1]/div‘, 31 ‘second_search_text‘: ‘//*[@id="header-company-search"]‘, 32 ‘second_search_submit‘: ‘/html/body/div[1]/div/div[2]/div/div[2]/div[1]/div‘, 33 ‘company_name‘: ‘/html/body/div[2]/div/div[1]/div/div[3]/div[1]/div/div[3]/div[1]/a/em‘, 34 ‘company_history_name‘: ‘/html/body/div[2]/div/div[1]/div/div[3]/div[1]/div/div[3]/div[4]/span[2]/em‘, 35 ‘company_url‘: ‘/html/body/div[2]/div/div[1]/div/div[3]/div[1]/div/div[3]/div[1]/a‘, 36 ‘holding_url‘: ‘/html/body/div[2]/div[1]/div/div[3]/div[1]/div/div[2]/div[1]/div[5]/div[2]‘, 37 ‘holding_name‘: ‘/html/body/div[2]/div[1]/div/div[3]/div[1]/div/div[2]/div[1]/div[5]/div[1]‘, 38 ‘financing_url‘: ‘/html/body/div[2]/div/div[2]/div[1]/div/div[2]/div[5]/div[2]/div‘, 39 ‘financing_name‘: ‘/html/body/div[2]/div/div[2]/div[1]/div/div[2]/div[5]/div[1]/span[1]‘, 40 ‘project_url‘: ‘/html/body/div[2]/div/div[2]/div[1]/div/div[2]/div[6]/div[2]/div‘, 41 ‘project_name‘: ‘/html/body/div[2]/div/div[2]/div[1]/div/div[2]/div[6]/div[1]/span[1]‘, 42 ‘2_to_3‘: ‘/html/body/div[2]/div[1]/div/div[2]/div[1]/div[2]/div[3]/div[4]/div[1]‘} 43 self.js = {‘page_state‘: ‘return document.readyState‘} 44 45 # 关闭新消息提醒 46 def has_new(self): 47 try: 48 if u‘新的动态‘ in self.browser.find_element_by_xpath(self.url_dic[‘New_Message‘]).text: 49 self.browser.find_element_by_xpath(self.url_dic[‘New_submit‘]).click() 50 self.browser.back() 51 except Exception: 52 pass 53 54 # 关闭底部风险提示 55 def advertisement(self): 56 try: 57 self.browser.find_element_by_xpath(self.url_dic[‘Advertisement‘]).click() 58 except Exception: 59 pass 60 61 # 等待页面加载完成 62 def complete(self): 63 while self.browser.execute_script(self.js[‘page_state‘]) != ‘complete‘: 64 time.sleep(0.001) 65 66 # 验证登录状态 67 def login_success(self): 68 try: 69 while u‘登录‘ in self.browser.find_element_by_xpath(self.url_dic[‘login_state‘]).text: 70 time.sleep(0.5) 71 except Exception: 72 pass 73 74 # 用户登录 75 def login(self): 76 # 访问网址 77 self.browser.get(self.url) 78 self.complete() 79 # 弹出登录界面 80 self.browser.find_elements_by_xpath(self.url_dic[‘get_login‘])[0].click() 81 # 选择登录方式并登录 82 while True: 83 try: 84 self.browser.find_element_by_xpath(self.url_dic[‘login_user_pwd‘]).click() 85 break 86 except Exception: 87 time.sleep(1) 88 self.browser.find_element_by_xpath(self.url_dic[‘login_user‘]).send_keys(self.user) 89 self.browser.find_element_by_xpath(self.url_dic[‘login_pwd‘]).send_keys(self.pwd) 90 self.browser.find_element_by_xpath(self.url_dic[‘login_submit‘]).click() 91 # 验证登录状态 92 print ‘正在登录……‘ 93 self.login_success() 94 # 确保登录成功 95 time.sleep(30) 96 # 除去新消息 97 self.has_new() 98 99 # 搜索企业 100 def search_company(self, company): 101 self.advertisement() 102 # 判断是否为第一次搜索 103 if self.isFirstSearch: 104 self.browser.find_element_by_xpath(self.url_dic[‘first_search_text‘]).clear() 105 self.browser.find_element_by_xpath(self.url_dic[‘first_search_text‘]).send_keys(company.decode(‘utf8‘)) 106 self.browser.find_elements_by_xpath(self.url_dic[‘first_search_submit‘])[0].click() 107 self.complete() 108 else: 109 # 关闭多余的窗口 110 while len(self.browser.window_handles) > 1: 111 self.browser.switch_to.window(self.browser.window_handles[-1]) 112 self.browser.close() 113 # 定位到搜索窗口 114 self.browser.switch_to.window(self.browser.window_handles[-1]) 115 # 搜索 116 self.browser.find_element_by_xpath(self.url_dic[‘second_search_text‘]).clear() 117 self.browser.find_element_by_xpath(self.url_dic[‘second_search_text‘]).send_keys(company.decode(‘utf8‘)) 118 self.browser.find_element_by_xpath(self.url_dic[‘second_search_submit‘]).click() 119 self.complete() 120 121 # 判断符合条件的第一条搜索结果 122 if self.browser.find_element_by_xpath(self.url_dic[‘company_name‘]).text == company.decode(‘utf8‘): 123 self.browser.find_element_by_xpath(self.url_dic[‘company_url‘]).click() 124 # 切换到新页面 125 while ‘company‘ not in self.browser.current_url: 126 self.browser.switch_to.window(self.browser.window_handles[-1]) 127 self.complete() 128 time.sleep(0.5) 129 return ‘success‘ 130 else: 131 self.advertisement() 132 try: 133 if self.browser.find_element_by_xpath(self.url_dic[‘company_history_name‘]).text == company.decode(‘utf8‘): 134 self.browser.find_element_by_xpath(self.url_dic[‘company_url‘]).click() 135 # 切换到新页面 136 while ‘company‘ not in self.browser.current_url: 137 self.browser.switch_to.window(self.browser.window_handles[-1]) 138 self.complete() 139 time.sleep(0.5) 140 return ‘success‘ 141 else: 142 return ‘fail‘ 143 except Exception: 144 return ‘fail‘ 145 146 # 获取某属性多页面信息 147 def rest_information(self, array, inform_url): 148 elements_num = len(self.browser.find_elements_by_xpath(inform_url + ‘/div/ul/li‘)) 149 for i in range(0, elements_num - 1): 150 # 去除底部广告 151 self.advertisement() 152 time.sleep(1) 153 # 进入下一页 154 self.browser.find_element_by_xpath(inform_url + ‘/div/ul/li[‘+str(elements_num)+‘]/a‘).click() 155 self.complete() 156 time.sleep(2) 157 # 判断是否刷新页面并添加内容 158 old_start_id = BeautifulSoup(array[-1], ‘html.parser‘).find(‘tbody‘).find(‘tr‘).find(‘td‘).text 159 for c in range(5): 160 new_page = self.browser.find_element_by_xpath(inform_url + ‘/table‘).get_attribute(‘innerHTML‘) 161 new_start_id = BeautifulSoup(new_page, ‘html.parser‘).find(‘tbody‘).find(‘tr‘).find(‘td‘).text 162 if new_start_id == old_start_id: 163 time.sleep(3) 164 else: 165 array.append(new_page) 166 break 167 168 # 如果属性页面数量不对,则重新查找 169 while elements_num != 0 and len(array) != elements_num - 1: 170 print elements_num, len(array) 171 time.sleep(5) 172 self.search_main(self.company) 173 174 # 获得详细信息 175 def get_information(self): 176 # 获取参股控股信息 177 holding_table = [] 178 try: 179 if u‘参股控股‘ in self.browser.find_element_by_xpath(self.url_dic[‘holding_name‘]).text: 180 holding_table.append(self.browser.find_element_by_xpath(self.url_dic[‘holding_url‘]+‘/table‘) 181 .get_attribute(‘innerHTML‘)) 182 self.rest_information(holding_table, self.url_dic[‘holding_url‘]) 183 except Exception: 184 pass 185 186 # 页面跳转(查询5次,每次未查询到等待2秒,查询不到则认为不存在) 187 times = 0 188 for i in range(5): 189 try: 190 self.browser.find_element_by_xpath(self.url_dic[‘2_to_3‘]).click() 191 break 192 except Exception: 193 time.sleep(2) 194 times += 1 195 print ‘times:‘ + str(times) 196 if times < 5: 197 self.browser.switch_to.window(self.browser.window_handles[-1]) 198 self.complete() 199 200 # 获取融资历程信息 201 financing_table = [] 202 try: 203 if u‘融资历程‘ in self.browser.find_element_by_xpath(self.url_dic[‘financing_name‘]).text: 204 financing_table.append(self.browser.find_element_by_xpath(self.url_dic[‘financing_url‘]+‘/table‘) 205 .get_attribute(‘innerHTML‘)) 206 self.rest_information(financing_table, self.url_dic[‘financing_url‘]) 207 except Exception: 208 pass 209 210 # 获取竞品推荐信息 211 project_table = [] 212 try: 213 if u‘竞品推荐‘ in self.browser.find_element_by_xpath(self.url_dic[‘project_name‘]).text: 214 project_table.append(self.browser.find_element_by_xpath(self.url_dic[‘project_url‘]+‘/table‘) 215 .get_attribute(‘innerHTML‘)) 216 self.rest_information(project_table, self.url_dic[‘project_url‘]) 217 except Exception: 218 pass 219 220 return holding_table, financing_table, project_table 221 else: 222 return holding_table, [], [] 223 224 # 提取信息总过程 225 def search_main(self, company): 226 self.company = company 227 company_exists = self.search_company(company) 228 self.isFirstSearch = False 229 if company_exists == ‘success‘: 230 print ‘success to search the company‘ 231 return self.get_information() 232 else: 233 return ‘fail to search the company‘ 234 235 # 关闭浏览器 236 def exit_driver(self): 237 self.browser.quit() 238 239 240 if __name__ == ‘__main__‘: 241 work = InformTable() 242 work.login() 243 work.search_main(‘北京超图软件股份有限公司‘) 244 work.search_main(‘北京超图软件股份有限公司‘) 245 work.exit_driver()
inform_data.py
1 # -*-coding:utf8-*- 2 3 from bs4 import BeautifulSoup 4 import urllib2 5 6 7 class Analysis: 8 def __init__(self, source, table): 9 self.table = table 10 self.source = source 11 self.soup = BeautifulSoup(self.table, ‘html.parser‘) 12 13 self.user_agent = ‘Mozilla/5.0 (Windows NT 6.1; WOW64; rv:62.0) Gecko/20100101 Firefox/62.0‘ # 请求头属性(模拟浏览器访问) 14 self.headers = {‘User-Agent‘: self.user_agent} 15 self.full_name_url = ‘#web-content .container.pt25 .container.brand-header-block #project_web_top .content .header a‘ 16 17 def table_head(self): 18 head = [] 19 for th in self.soup.findAll(‘th‘): 20 head.append(th.getText().encode(‘utf8‘)) 21 return head 22 23 def full_name(self, url): 24 response = None 25 while response is None: 26 try: 27 request = urllib2.Request(url, headers=self.headers) 28 ‘‘‘ 29 response = urllib2.urlopen(request, timeout=2) 30 ‘‘‘ 31 response = urllib2.build_opener(urllib2.ProxyHandler({‘https‘: ‘115.153.15.128‘})).open(request, timeout=2) 32 except Exception: 33 pass 34 soup = BeautifulSoup(response, ‘html.parser‘) 35 return soup.select(self.full_name_url)[0].text 36 37 def table_body(self): 38 table_body = self.soup.find(‘tbody‘).findAll(‘tr‘) 39 body = [] 40 if ‘financing‘ in self.source: 41 turn = 1 42 else: 43 turn = 2 44 for s in range(0, len(table_body), turn): 45 sub_soup = table_body[s].findAll(‘td‘) 46 sub_body = [] 47 for j in range(len(sub_soup)): 48 if j != 1 and j != 2: 49 if ‘project‘ in self.source and (j == 3 or j == 7): 50 if j == 3: 51 try: 52 # print self.full_name(sub_soup[j].find(‘a‘).attrs[‘href‘]).encode(‘utf8‘) 53 sub_body.append(self.full_name(sub_soup[j].find(‘a‘).attrs[‘href‘]).encode(‘utf8‘)) 54 except Exception: 55 sub_body.append(sub_soup[j].getText().encode(‘utf8‘)) 56 if j == 7: 57 sub_body.append(sub_soup[j].findAll(‘span‘)[1].text.encode(‘utf8‘)) 58 else: 59 sub_body.append(sub_soup[j].getText().encode(‘utf8‘)) 60 body.append(sub_body) 61 return body 62 63 64 if __name__ == ‘__main__‘: 65 table = ‘<thead><tr><th class="sort-col">序号</th><th>产品名</th><th width="15%">融资信息</th><th width="15%">成立时间</th><th width="10%">所属地</th><th width="35%">产品介绍</th></tr></thead><tbody><tr><td>1</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="" alt="城际高科信息" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/b7ce8258753" target="_blank">城际高科信息</a></td></tr></tbody></table></td><td>战略融资</td><td>2000-01-27</td><td>北京</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">2000年1月成立于北京市海淀区,是北京市高新技术企业,2003年通过了北京市双软认证。公司专注于车载移动信息终端的研发、生产和销售,并构建全国范围的信息服务平台、建设全国移动信息应用数据库;致力于成为中国空间地理信息领域技术开发、产品应用及信息服务的行业先锋。</span><span class="js-split-container" data-num="37" data-length="131">2000年1月成立于北京市海淀区,是北京市高新技术企业,2003年通过了北...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>2</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="https://img.tianyancha.com/logo/product/[email protected]!f_200x200" alt="金建" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/ba777299468" target="_blank">金建</a></td></tr></tbody></table></td><td>战略融资</td><td>1998-11-23</td><td>辽宁</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">沈阳金建数字城市软件有限公司(Shenyang Jinjian Digital City Software Ltd.)是致力于地理信息技术(GIS)的研发与应用,立足于东北、服务于全国的高科技软件企业。公司1998年成立至今,业务规模不断扩大,金建软件已广泛应用于城市规划,专业管网,土地管理、油田建设、勘察测绘、电力电信、公安及房地产等领域,为相关行业GIS的建设和发展做出了积极贡献。金建软件目前已成为东北地区乃至全国最具品牌价值的IT企业之一。</span><span class="js-split-container" data-num="37" data-length="225">沈阳金建数字城市软件有限公司(Shenyang Jinjian Digit...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>3</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="https://img.tianyancha.com/logo/product/[email protected]!f_200x200" alt="金维软件" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/b558b300764" target="_blank">金维软件</a></td></tr></tbody></table></td><td>战略融资</td><td>1999-10-13</td><td>新疆</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">乌鲁木齐金维图文信息科技有限公司1999年由新疆地矿局“物化探计算中心”改制而成,是专业从事行业应用软件、地理信息系统(GIS)开发和空间数据库建设的高科技企业,是新疆维吾尔自治区认定的“高新技术企业、科技企业、软件企业”,是新疆软件行业协会、新疆计算机学会、新疆电子协会的执行副理事长单位,是新疆电子信息产业技术创新战略联盟理事单位。公司自创立以来,本着“基于应用,面向行业”的经营方针,在地矿、电力等多个领域为客户持续了提供高水准、高技术含量的应用方案。</span><span class="js-split-container" data-num="37" data-length="229">乌鲁木齐金维图文信息科技有限公司1999年由新疆地矿局“物化探计算中心”改...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>4</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="https://img.tianyancha.com/logo/product/[email protected]!f_200x200" alt="Enview" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/bcc19251235" target="_blank">Enview</a></td></tr></tbody></table></td><td>A轮</td><td>2015-02-02</td><td>加利福尼亚州/美国</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">Enview是一个地理空间影像服务商,Enview公司希望利用地理空间分析工具帮助石油天然气公司和公共事业机构来监视和管理他们的网络,继而更好、更快速的了解传输系统在哪里发生了故障,避免给人们的生命和财产造成损失。</span><span class="js-split-container" data-num="37" data-length="107">Enview是一个地理空间影像服务商,Enview公司希望利用地理空间分析...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>5</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="https://img.tianyancha.com/logo/product/[email protected]!f_200x200" alt="五珀云" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/bc1c5262956" target="_blank">五珀云</a></td></tr></tbody></table></td><td>天使轮</td><td>2016-06-21</td><td>上海</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">五珀云专注于GIS技术与企业应用、大众消费相结合领域,提供专业的地理时空大数据挖掘服务,我们为这个世界创造一个使用地图的新方式,为客户创造新的商业价值。通过地图资源管理、极致地理围栏(Geo-fencing)服务、实时场景智能感知服务、多渠道通知服务、足迹可视化服务、地理空间分析服务、地理网络拓扑服务、软硬件集成解决方案,解决用户各种基于空间和时间维度的行业应用需求。</span><span class="js-split-container" data-num="37" data-length="185">五珀云专注于GIS技术与企业应用、大众消费相结合领域,提供专业的地理时空大...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>6</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="" alt="极云地理" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/b2899336763" target="_blank">极云地理</a></td></tr></tbody></table></td><td>天使轮</td><td>2017-04-01</td><td>浙江</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">浙江极云地理信息科技有限公司致力于成为国内专业的地理信息服务提供商。</span><span class="js-split-container" data-num="37" data-length="34">浙江极云地理信息科技有限公司致力于成为国内专业的地理信息服务提供商。</span><a style="cursor: pointer;" class="js-shrink-btn hidden link-click">详情</a></span></td></tr><tr><td>7</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="https://img.tianyancha.com/logo/product/[email protected]!f_200x200" alt="WELTOP" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/bb143272647" target="_blank">WELTOP</a></td></tr></tbody></table></td><td>待披露</td><td>1999-11-17</td><td>北京</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">北京威远图易数字科技有限公司(简称WELTOP),专注于三维实景地图信息采集、处理、管理、分享、应用和动态更新技术。是专业的、综合的地理空间信息服务提供商。公司服务于政府和企业的客户,自主研发的PPVISION三维实景地图生产、管理与发布软件系统,为中国的空间信息需求用户提供高性能的软件和硬件产品。</span><span class="js-split-container" data-num="37" data-length="150">北京威远图易数字科技有限公司(简称WELTOP),专注于三维实景地图信息采...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>8</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="https://img.tianyancha.com/logo/product/[email protected]!f_200x200" alt="开睿动力" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/b160b278456" target="_blank">开睿动力</a></td></tr></tbody></table></td><td>待披露</td><td>2004-10-29</td><td>福建</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">开睿动力通信科技有限公司是创新型的技术企业,成立于2004年,注册资本1000万元,是一家具备甲级测绘资质的专业地图服务提供商,拥有10多项自主知识产权,其中软件著作权证8项、专利证书4项、自主知识产权的高速矢量地图引擎,可及时更新、覆盖全国各地的地理空间数据。</span><span class="js-split-container" data-num="37" data-length="131">开睿动力通信科技有限公司是创新型的技术企业,成立于2004年,注册资本10...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>9</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="" alt="佛山宇星创媒" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/bef6a272316" target="_blank">佛山宇星创媒</a></td></tr></tbody></table></td><td>待披露</td><td>2009-08-28</td><td>广东</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">佛山市宇星创媒信息科技有限公司是一家致力于提供基于地理信息系统(GIS)的商业信息增值服务的高新技术企业。 目前公司正在逐步计划通过手机、网站、数字电视、汽车导航等多媒体数字化用户终端,尝试与当前前缘的人际互动工具或平台相结合(如微博、各种即时通讯等),为中国互联网用户提供本地化社区服务,逐步实现在人们的日常生活、消费与企业服务、商业活动等领域,提供到精准的全方位地理信息增值服务。</span><span class="js-split-container" data-num="37" data-length="192">佛山市宇星创媒信息科技有限公司是一家致力于提供基于地理信息系统(GIS)的...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>10</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="https://img.tianyancha.com/logo/product/[email protected]!f_200x200" alt="宏图智慧" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/b4b20314890" target="_blank">宏图智慧</a></td></tr></tbody></table></td><td>-</td><td>2015-08-19</td><td>四川</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">四川宏图智慧科技有限公司主要从事图形信息系统的开发和推广,公司自主开发了具有完全自主知识产权的GWIGS宏图智慧地理信息系统和图形交互系统,是智慧城市、大规模位置服务、图形信息交互应用平台的基础,在大数据应用展示和多系统整合领域具有领先的核心技术。</span><span class="js-split-container" data-num="37" data-length="124">四川宏图智慧科技有限公司主要从事图形信息系统的开发和推广,公司自主开发了具...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>11</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="" alt="图创信息" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/bb090334100" target="_blank">图创信息</a></td></tr></tbody></table></td><td>-</td><td>2013-10-22</td><td>山东</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">青岛图创信息技术有限公司技术实力雄厚,拥有自主知识产权的GIS开发平台(地图引擎)-GISONE,能够满足客户多方面的开发需求。公司团队在国土、燃气、自来水等大型应用系统项目上,具有丰富的开发和实施经验。目前,图创开发的行业应用产品,已在智慧城市、地下管网、远传物联、大数据分析等领域广泛应用。</span><span class="js-split-container" data-num="37" data-length="147">青岛图创信息技术有限公司技术实力雄厚,拥有自主知识产权的GIS开发平台(地...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>12</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="https://img.tianyancha.com/logo/product/[email protected]!f_200x200" alt="GomSpace" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/b7f96316955" target="_blank">GomSpace</a></td></tr></tbody></table></td><td>-</td><td>2007-01-01</td><td>丹麦</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">GomSpace是位于丹麦的空间公司,于2007年成立。我们的使命是通过在专业纳米卫星技术的基础上引入新产品,即组件,平台和系统,从事全球空间系统和服务市场。</span><span class="js-split-container" data-num="37" data-length="79">GomSpace是位于丹麦的空间公司,于2007年成立。我们的使命是通过在...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>13</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="" alt="图葳数码" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/b4168256544" target="_blank">图葳数码</a></td></tr></tbody></table></td><td>-</td><td>2007-06-22</td><td>天津</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">公司长期致力于生产电子地图数据产品和其他的地理信息相关内容的业务。可承接地图数据公共设施点的采集业务、数据挖掘和分析服务、遥感影像加工服务、地图基础数据的建库业务、专题地图的定制业务等相关的地图业务</span><span class="js-split-container" data-num="37" data-length="99">公司长期致力于生产电子地图数据产品和其他的地理信息相关内容的业务。可承接地...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>14</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="https://img.tianyancha.com/logo/product/[email protected]!f_200x200" alt="中科星图" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/b3d50256302" target="_blank">中科星图</a></td></tr></tbody></table></td><td>-</td><td>2014-01-21</td><td>湖南</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">湖南中科星图信息技术有限公司成立于2013年,是一家由中国科学院电子学研究所提供技术、中关村代办股份转让系统挂牌的高科技企业北京丰电科技股份有限公司(证券代码:430211)控股成立的高科技企业,注册资本1000万元。公司依托国家高分辨率对地观测系统湖南数据与应用中心和国家超级计算长沙中心的平台资源,在中国科学院电子学研究所多年积累的空间信息获取处理与应用技术的基础上,专注于发展高分辨率对地观测卫星数据产品及应用服务,提供符合行业应用需求的系统解决方案,努力打造空间信息应用领域的创新品牌。</span><span class="js-split-container" data-num="37" data-length="247">湖南中科星图信息技术有限公司成立于2013年,是一家由中国科学院电子学研究...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>15</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="https://img.tianyancha.com/logo/product/[email protected]!f_200x200" alt="浙江鸿图" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/b41f2235059" target="_blank">浙江鸿图</a></td></tr></tbody></table></td><td>-</td><td>2014-09-22</td><td>浙江</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">鸿图是一家从事地理信息系统建设、地理信息软件开发、具备基础原始数据采集能力和丰富经验的地理信息技术创新型服务性企业。公司拥有国家测绘丙级资质,通过国际ISO9001认证,配备国内外先进的各类专业仪器设设备二十余台套,包括GIS系统开发平台、三维立体定位导航导购技术、三维建模平台、三维扫描设备、三维数字化成图设备、全球卫星定位系统(GPS)接收机、地质雷达、管线定位仪等。公司秉承“求真务实、开拓创新”的企业精神和“数据真实、技术领先、引领需求、服务到位”的经营理念,紧握传统测量命脉,专注地理信息技术的开发和</span><span class="js-split-container" data-num="37" data-length="255">鸿图是一家从事地理信息系统建设、地理信息软件开发、具备基础原始数据采集能力...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>16</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="https://img.tianyancha.com/logo/product/[email protected]!f_200x200" alt="天力发测绘" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/b4853204102" target="_blank">天力发测绘</a></td></tr></tbody></table></td><td>-</td><td>1996-05-28</td><td>北京</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">天力发测绘是一家高科技地理空间信息企业,是服务于测绘及地理信息相关产业的先进设备和测量系统解决方案的提供商,所涉及领域覆盖天空(航空遥感测绘、无人机及航测软件)、地面(大地测绘、工程测量、移动三维扫描)及地下、水下(地下管网探测、水下地形测绘、变形监测、地质勘察)、地理信息数据采集、处理及应用。</span><span class="js-split-container" data-num="37" data-length="148">天力发测绘是一家高科技地理空间信息企业,是服务于测绘及地理信息相关产业的先...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>17</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="https://img.tianyancha.com/logo/product/[email protected]!f_200x200" alt="联投万科" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/b223e273738" target="_blank">联投万科</a></td></tr></tbody></table></td><td>-</td><td>2010-06-01</td><td>湖北</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">致力于激光雷达(LiDAR)、计算机视觉、无人机以及三维地理信息的研发与应用,是国内领先的激光雷达软硬件和综合服务提供商。目前,已成功自主开发了优秀的激光点云数据管理、分析和建模软件以及航空影像处理等软件。在硬件方面,推出了车载信息平台、无人机平台、飞艇以及直升机等多个系统平台,用来为客户提供快捷、高效的数据采集服务。同时,数字绿土在三维扫描、数字林业、电力巡线、三维地形、智慧城市、文物重建、灾害评估和地籍调查等多个领域拥有成熟系统的解决方案。</span><span class="js-split-container" data-num="37" data-length="224">致力于激光雷达(LiDAR)、计算机视觉、无人机以及三维地理信息的研发与应...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>18</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="https://img.tianyancha.com/logo/product/[email protected]!f_200x200" alt="四维航遥" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/b7011331088" target="_blank">四维航遥</a></td></tr></tbody></table></td><td>-</td><td>2003-06-26</td><td>吉林</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">吉林四维航遥信息技术有限公司主要从事地理信息产品的研制和工程服务,包括:遥感影像数据处理;数字摄影测量工程;GIS系统工程建设;数字国土工程;数字农业工程;数字城市工程;基础地理信息数据库和专业地理信息数据库的建设;航测、遥感、测绘及地理信息系统方面的软件开发和系统集成。</span><span class="js-split-container" data-num="37" data-length="136">吉林四维航遥信息技术有限公司主要从事地理信息产品的研制和工程服务,包括:遥...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>19</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="https://img.tianyancha.com/logo/product/[email protected]!f_200x200" alt="FTC友好创达" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/bf8c6193888" target="_blank">FTC友好创达</a></td></tr></tbody></table></td><td>-</td><td>2001-11-02</td><td>北京</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">北京友好创达科技有限公司,成立于1993年,注册资本5000万元,公司长期专注于数字档案和地理空间两大领域,凭借完备的技术体系和丰富的行业经验,整合航空摄影测量设备、图像后处理软件、大幅面输入输出设备、数字化加工管理软件等多项国际先进技术,面向国土、测绘、地矿、水利、电力、军队等行业的千余家企事业单位,提供行业应用解决方案。公司坚持自主创新,多年来与多家政府业务单位、研究所、高校建立了合作关系,共同致力于行业标准制定与技术研发,为行业用户转型升级保驾护航。</span><span class="js-split-container" data-num="37" data-length="230">北京友好创达科技有限公司,成立于1993年,注册资本5000万元,公司长期...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr><tr><td>20</td><td class="left-col"><table class="lazy-img -alias -text -w36"><tbody><tr><td class="-w36"><div class="logo-text -l2 -w36"><span class="text">暂无</span></div><div class="logo -w36"><img class="img expand-img" data-src="https://img.tianyancha.com/logo/product/[email protected]!f_200x200" alt="图创时代" erro-src="https://img.tianyancha.com/logo/teamMember/[email protected]!fill_200x200"></div></td><td><a class="link-click" href="https://www.tianyancha.com/brand/b827f228259" target="_blank">图创时代</a></td></tr></tbody></table></td><td>-</td><td>2014-12-18</td><td>北京</td><td class="left-col"><span class="js-shrink-container"><span class="js-full-container hidden">北京图创时代科技有限公司成立于2014年,是专注于提供企业地图云一体化解决方案的高科技企业,致力为商企应用提供“互联网 ”地理智慧,助力企业认知空间的极限,探索未知和可能。首先,为企业、机构和应用开发者的集成开发、应用推广提供一站式的服务支撑,让位置服务与应用更加简单、便捷。让位置服务成为连接、激活和驱动位置生态发展的新的互联网基础设施。</span><span class="js-split-container" data-num="37" data-length="170">北京图创时代科技有限公司成立于2014年,是专注于提供企业地图云一体化解决...</span><a style="cursor: pointer;" class="js-shrink-btn link-click">详情</a></span></td></tr></tbody>‘ 66 a = Analysis(source=‘project_table‘, table=table) 67 a.table_body()
main.py
1 # -*-coding:utf8-*- 2 3 import csv 4 import shutil 5 from inform_table import InformTable 6 from inform_data import Analysis 7 import os 8 import time 9 10 11 class Main: 12 def __init__(self): 13 # self.read_url = ‘中关村朝阳园总体数据.csv‘ 14 self.read_url = ‘中关村高新技术企业名录库.csv‘ 15 self.read_title = ‘法人单位名称‘ 16 self.companies = [] 17 self.company_num = 0 18 self.company_col = 2 # 实验文件文件为0,正式运行为2 19 self.region = 3 20 self.terminate = 0 # 程序中断后新开始的编号(编号=csv文件公司序号-1) 21 22 self.fail_company = ‘result\search_company_failed.csv‘ 23 self.fail_message = ‘result\search_message_failed.csv‘ 24 25 # 读取企业名称 26 def read(self): 27 with open(unicode(self.read_url, ‘utf8‘), ‘r‘) as readering: 28 reader = csv.reader(readering) 29 for row in reader: 30 if row[self.company_col] != self.read_title: 31 self.companies.append([row[self.company_col]] + [row[self.region]]) 32 self.company_num = len(self.companies) 33 34 def out(self, foldername, filename, out_message): 35 if not os.path.exists(‘result\‘+foldername.decode(‘utf8‘)): 36 os.mkdir(‘result\‘+foldername.decode(‘utf8‘).encode(‘gb18030‘)) 37 38 with open(unicode(‘result\‘+foldername+‘\‘+filename+‘.csv‘, ‘utf8‘), ‘ab‘) as w: 39 writer = csv.writer(w) 40 writer.writerow(out_message) 41 42 def writer_message(self, filename, table_name, tables): 43 for table in range(len(tables)): 44 analysis = Analysis(table_name, tables[table]) 45 if table == 0: 46 if ‘project‘ in table_name: 47 self.out(filename, table_name, analysis.table_head()+[‘所属园区‘]) 48 else: 49 self.out(filename, table_name, analysis.table_head()) 50 items = analysis.table_body() 51 for i in range(len(items)): 52 if ‘project‘ in table_name: 53 isBelong = ‘其他‘ 54 if ‘北京‘ in items[i][4]: 55 for c_id in range(len(self.companies)): 56 if items[i][1] in self.companies[c_id][0]: 57 isBelong = self.companies[c_id][1] 58 self.out(filename, table_name, items[i]+[isBelong]) 59 else: 60 self.out(filename, table_name, items[i]) 61 time.sleep(5) 62 63 # 查找企业相关信息 64 def search(self): 65 if not os.path.exists(‘result‘): 66 os.mkdir(‘result‘) 67 work = InformTable() 68 work.login() 69 for company in range(self.terminate, self.company_num): 70 print company, self.companies[company][0] 71 result = work.search_main(self.companies[company][0]) 72 if ‘fail‘ in result: 73 with open(self.fail_company, ‘ab‘) as w: 74 writer = csv.writer(w) 75 writer.writerow([self.companies[company][0]]) 76 else: 77 holding_table, financing_table, project_table = result[0], result[1], result[2] 78 print len(holding_table), len(financing_table), len(project_table) 79 if len(holding_table) == 0 and len(financing_table) == 0 and len(project_table) == 0: 80 with open(self.fail_message, ‘ab‘) as w: 81 writer = csv.writer(w) 82 writer.writerow([self.companies[company][0]]) 83 else: 84 print ‘正在录入……‘ 85 self.writer_message(self.companies[company][0], ‘holding_table‘, holding_table) 86 self.writer_message(self.companies[company][0], ‘financing_table‘, financing_table) 87 self.writer_message(self.companies[company][0], ‘project_table‘, project_table) 88 work.exit_driver() 89 90 91 if __name__ == ‘__main__‘: 92 if os.path.exists(‘result‘): 93 shutil.rmtree(‘result‘) 94 thing = Main() 95 thing.read() 96 thing.search()
以上是关于python应用:selenium之爬取天眼查信息的主要内容,如果未能解决你的问题,请参考以下文章