1、下载驱动并设置环境变量

1.1、查看你的浏览器的版本

在网址栏输入:chrome://version PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

我的浏览器的版本是85.0.4183。

1.2、下载对应版本的ChromeDriver驱动

网址如下:http://chromedriver.storage.googleapis.com/index.html

因为我的谷歌版本是85.0.4183,所以我下载的ChromeDriver驱动对应的也是85.0.4183版本的。

1.3、设置环境变量

第一步:把下载好的zip压缩包解压,然后把里面的chromedriver.exe复制到谷歌浏览器的安装目录去。忘记谷歌浏览器的安装目录的人可以在1.1的图片那看可执行文件路径那里。

第二步:复制成功后,把这个目录复制一遍,添加到系统的环境变量里的path。

2、使用驱动打开谷歌浏览器

import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
#图像处理标准库
from PIL import Image#鼠标操作
from selenium.webdriver.common.action_chains import ActionChains
#等待时间 产生随机数
import time,random
#创建浏览器对象
driver = webdriver.Chrome()

3、登录天眼查,输入账号密码

driver.get("https://www.tianyancha.com/")
time.sleep(3)
# 点击登录按钮
driver.find_elements_by_xpath('//a[@class="link-white"]')[0].click()# 点击密码登录
time.sleep(1)
driver.find_elements_by_xpath('//div[@class="title-tab text-center"]')[0].click()
driver.find_elements_by_xpath('//div[@tyc-event-ch="LoginPage.PasswordLogin"]')[0].click()time.sleep(2)# 输入手机号
input1 = driver.find_element_by_name("phone")
input1.send_keys("手机号码")    # 手机号码time.sleep(2)
# 输入密码
input2 = driver.find_element_by_name("password")
input2.send_keys("密码")    # 密码# 点击登录按钮
driver.find_elements_by_xpath('//div[@class="btn -xl btn-primary -block"]')[0].click()

然后滑动验证自己划一下,反正只需要登录一次就行

4、将爬取到的信息处理成一个dataframe,方便保存为csv文件

import pandas as pddef message_to_df(message,company):registered_capital = []contributed_capital = []Date_of_Establishment = []ManagementForms = []Unified_social_credit_code = []companyNo = []Taxpayer_Identification_Number =[]Organization_Code = []company_type = []industry = []Approved_date = []Registration_Authority = []Business_Term = []staff_size = []Number_of_participants = []former_name = []Business_Scope = []registered_capital.append(message.split('注册资本')[1].split('\n')[1])contributed_capital.append(message.split('实缴资本')[1].split('\n')[0])Date_of_Establishment.append(message.split('成立日期')[1].split('\n')[1])ManagementForms.append(message.split('经营状态')[1].split('\n')[0])Unified_social_credit_code.append(message.split('统一社会信用代码')[1].split('\n')[1].split(' ')[0])companyNo.append(message.split('工商注册号')[1].split('\n')[0])Taxpayer_Identification_Number.append(message.split('纳税人识别号')[1].split('\n')[1].split(' ')[0])Organization_Code.append(message.split('组织机构代码')[1].split('\n')[1])company_type.append(message.split('公司类型')[1].split(' ')[1])industry.append(message.split('行业')[1].split('\n')[0])Approved_date.append(message.split('核准日期')[1].split(' ')[1])Registration_Authority.append(message.split('登记机关')[1].split('\n')[0])Business_Term.append(message.split('营业期限')[1].split(' ')[1])staff_size.append(message.split('人员规模')[1].split(' ')[1])Number_of_participants.append(message.split('参保人数')[1].split('\n')[0])former_name.append(message.split('曾用名')[1].split(' ')[1])Business_Scope.append(message.split('经营范围')[1].split(' ')[1])df = pd.DataFrame({'公司':company,\'注册资本':registered_capital,\'实缴资本':contributed_capital,\'成立日期':Date_of_Establishment,\'经营状态':ManagementForms,\'统一社会信用代码':Unified_social_credit_code,\'工商注册号':companyNo,\'纳税人识别号':Taxpayer_Identification_Number,\'组织机构代码':Organization_Code,\'公司类型':company_type,\'行业':industry,\'核准日期':Approved_date,\'登记机关':Registration_Authority,\'营业期限':Business_Term,\'人员规模':staff_size,\'参保人数':Number_of_participants,\'曾用名':former_name,\'经营范围':Business_Scope})return df

5、输入公司名,可爬取到该公司的详细信息(除非该公司不存在,否则都可以得到该公司的详细信息)

①更改该列表可得自己想要得到的公司的详细信息

companys = ['深圳市腾讯计算机系统有限公司','阿里巴巴(中国)有限公司']

②运行得到处理结果,然后将其存储在自定义的csv文件中。

def get_company_message(company):driver.get("https://www.tianyancha.com/search?key={}".format(company))# 进入相关公司的详情页面href = driver.find_elements_by_xpath('//a[@tyc-event-ch="CompanySearch.Company"]')[0].get_attribute('href')driver.get(href)time.sleep(5)message = driver.find_elements_by_xpath('//table[@class="table -striped-col -border-top-none -breakall"]')[0].textreturn messagefor company in companys:try:messages = get_company_message(company)except:passelse:df = message_to_df(messages,company)if(company==companys[0]):df.to_csv('自己目录的绝对路径/company.csv',index=False,header=True)else:df.to_csv('自己目录的绝对路径/company.csv',mode='a+',index=False,header=False)time.sleep(3)

至此,就可以得到这两家公司的一些详细信息。

ps:如果大家在driver.find_elements_by_xpath这里遇到点错误,可能是天眼查那边更新了网页代码,大家可以根据这个操作来更新代码。

①按F12进入开发者调试页面

②就点击“阿里巴巴(中国)有限公司”这个点击操作而言,右击,然后选择“检查”选项,然后就可以看到开发者调试页面那里也自动跳转到了相关的位置。

③在开发者调试页面那里继续双击,然后右击,在copy选项那里选择Copy XPath,就可以得到相关的Xpath了。比如我现在2020年10月份点的时候,是://*[@id=“web-content”]/div/div[1]/div[2]/div[2]/div[1]/div/div[3]/div[1]/a。

最后,大家需要注意的是,爬取的时候需要适当的设置一下睡眠时间,不然会被检测到是爬虫机器人在操作,可能会弹出弹窗让你验证,这样会导致爬取的信息不完整。第二个就是某个时间段爬取量尽量不要太大,不然也是会被检测到的,天眼查的小哥哥小姐姐防爬虫措施做得挺好的。

# 附上完整代码import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
#图像处理标准库
from PIL import Image#鼠标操作
from selenium.webdriver.common.action_chains import ActionChains
#等待时间 产生随机数
import time,random
#创建浏览器对象
driver = webdriver.Chrome()driver.get("https://www.tianyancha.com/")
time.sleep(3)
# 点击登录按钮
driver.find_elements_by_xpath('//a[@class="link-white"]')[0].click()# 点击密码登录
time.sleep(1)
driver.find_elements_by_xpath('//div[@class="title-tab text-center"]')[0].click()
driver.find_elements_by_xpath('//div[@tyc-event-ch="LoginPage.PasswordLogin"]')[0].click()time.sleep(2)# 输入手机号
input1 = driver.find_element_by_name("phone")
input1.send_keys("手机号码")    # 手机号码time.sleep(2)
# 输入密码
input2 = driver.find_element_by_name("password")
input2.send_keys("密码")    # 密码# 点击登录按钮
driver.find_elements_by_xpath('//div[@class="btn -xl btn-primary -block"]')[0].click()import pandas as pddef message_to_df(message,company):registered_capital = []contributed_capital = []Date_of_Establishment = []ManagementForms = []Unified_social_credit_code = []companyNo = []Taxpayer_Identification_Number =[]Organization_Code = []company_type = []industry = []Approved_date = []Registration_Authority = []Business_Term = []staff_size = []Number_of_participants = []former_name = []Business_Scope = []registered_capital.append(message.split('注册资本')[1].split('\n')[1])contributed_capital.append(message.split('实缴资本')[1].split('\n')[0])Date_of_Establishment.append(message.split('成立日期')[1].split('\n')[1])ManagementForms.append(message.split('经营状态')[1].split('\n')[0])Unified_social_credit_code.append(message.split('统一社会信用代码')[1].split('\n')[1].split(' ')[0])companyNo.append(message.split('工商注册号')[1].split('\n')[0])Taxpayer_Identification_Number.append(message.split('纳税人识别号')[1].split('\n')[1].split(' ')[0])Organization_Code.append(message.split('组织机构代码')[1].split('\n')[1])company_type.append(message.split('公司类型')[1].split(' ')[1])industry.append(message.split('行业')[1].split('\n')[0])Approved_date.append(message.split('核准日期')[1].split(' ')[1])Registration_Authority.append(message.split('登记机关')[1].split('\n')[0])Business_Term.append(message.split('营业期限')[1].split(' ')[1])staff_size.append(message.split('人员规模')[1].split(' ')[1])Number_of_participants.append(message.split('参保人数')[1].split('\n')[0])former_name.append(message.split('曾用名')[1].split(' ')[1])Business_Scope.append(message.split('经营范围')[1].split(' ')[1])df = pd.DataFrame({'公司':company,\'注册资本':registered_capital,\'实缴资本':contributed_capital,\'成立日期':Date_of_Establishment,\'经营状态':ManagementForms,\'统一社会信用代码':Unified_social_credit_code,\'工商注册号':companyNo,\'纳税人识别号':Taxpayer_Identification_Number,\'组织机构代码':Organization_Code,\'公司类型':company_type,\'行业':industry,\'核准日期':Approved_date,\'登记机关':Registration_Authority,\'营业期限':Business_Term,\'人员规模':staff_size,\'参保人数':Number_of_participants,\'曾用名':former_name,\'经营范围':Business_Scope})return dfcompanys = ['深圳市腾讯计算机系统有限公司','阿里巴巴(中国)有限公司']def get_company_message(company):driver.get("https://www.tianyancha.com/search?key={}".format(company))# 进入相关公司的详情页面href = driver.find_elements_by_xpath('//a[@tyc-event-ch="CompanySearch.Company"]')[0].get_attribute('href')driver.get(href)time.sleep(5)message = driver.find_elements_by_xpath('//table[@class="table -striped-col -border-top-none -breakall"]')[0].textreturn messagefor company in companys:try:messages = get_company_message(company)except:passelse:df = message_to_df(messages,company)if(company==companys[0]):df.to_csv('自己目录的绝对路径/company.csv',index=False,header=True)else:df.to_csv('自己目录的绝对路径/company.csv',mode='a+',index=False,header=False)time.sleep(3)

注明:转载需注明原贴链接,利用代码进行非法行为与本人无关

原文地址:Selenium 根据输入的公司名称来爬取公司的详细信息

著作权归作者所有,如有侵权联系小编删除!

Selenium根据输入的公司名称来爬取公司的详细信息!相关推荐

  1. Selenium 根据输入的公司名称来爬取公司的详细信息

    Selenium 根据输入的公司名称来爬取天眼查中的公司的详细信息 1.下载驱动并设置环境变量 1.1.查看你的浏览器的版本 1.2.下载对应版本的ChromeDriver驱动 1.3.设置环境变量 ...

  2. BeautifulSoup 根据输入的公司名称来爬取公司的详细信息(2022-08-24更新版)

    BeautifulSoup 根据输入的公司名称来爬取公司的详细信息----2022-08-24更新版 1.获取headers 2.登录成功后,可根据输入的公司名称进行查询操作,得到所需要的内容. 3. ...

  3. java 爬取京东商品详细信息 价格

    java 爬取京东商品详细信息 价格 获取图中的价格,因为京东的价格有反扒机制,价格通过js加载的,直接通过页面标签是获取不到的,所以我们要去要相应的js. http://p.3.cn/prices/ ...

  4. Requests库实战(三)---爬取豆瓣电影详细信息

    完整代码 爬取豆瓣电影的详细信息 地址:豆瓣电影动画 向下滑动时新增的数据也是Ajax请求,原理和上一个项目是一样的.唯一的不同是此处请求url携带了多个参数 import requests impo ...

  5. 使用scrapy爬取京东产品详细信息

    我的爬虫以京东女装的外套为例进行,抓取更大的分类可以再进行修改. scrapy的安装,建工程什么的我就不说了,工程结构如图 crawlCoat内容如下: # -*- coding: utf-8 -*- ...

  6. Python爬虫-利用xpath解析爬取58二手房详细信息

    文章目录 前言 介绍 代码 运行结果截图 前言 简单的Python练习,对页面中的某些部分的文字进行爬取 介绍 xpath解析: 最常用且最便捷高效的一种解析方式.通用型.-xpath解析原理:- 1 ...

  7. python爬取steam250游戏详细信息和下载游戏介绍视频

    爬取网页地址 https://steam250.com/2020 网页详情 爬取的信息 游戏名称 游戏图片地址 游戏发行日期 游戏分类 游戏评分 游戏描述 游戏介绍视频 这里游戏描述需要点击单个游戏介 ...

  8. 爬取微信好友详细信息

    今天看到一位大佬的文章,很感兴趣,现照着葫芦画瓢,开发具有自己特色的研究路线,原文在此,大家可以参观一下~~ https://blog.csdn.net/tangyang8941/article/de ...

  9. Python爬虫:输入公司名称,爬取企查查网站中的公司信息

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于Python爬虫数据分析挖掘 ,作者:李运辰 根据输入的公司名称来爬取企查查网 ...

最新文章

  1. 剑指offer:面试题41. 数据流中的中位数
  2. Appium自动化测试环境搭建
  3. java怎么测试dao_java-Mockito使用模拟对象测试DAO
  4. WPFWCFWF打造HelloWorld程序
  5. HDU-1241 Oil Deposits (DFS)
  6. 信息学奥赛一本通(1123:图像相似度)
  7. mysql dba命令_mysql DBA:mysqladmin常用命令总结
  8. (组合数学笔记)递推关系小结及典型题分析
  9. 蚂蚁金服 AntV F2 3.6 发布,更强!更快!
  10. 关于创建对象的几个问题,拨云见日
  11. Unity 根据文件路径批量修改图片格式
  12. iOS游戏开发梦想成真:神奇的GameSalad
  13. node.js处理torrent
  14. 电子签批板那个品牌好用?国产柜台电子签名板推荐
  15. 富文本编辑器ueditor——找不到ueditor.all.js以及ueditor.all.min.js文件
  16. get_post X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?
  17. 三菱FX系列DPLSY指令使用
  18. 学习笔记 - 用户故事(User Story)
  19. Python网页爬虫工具有哪些?
  20. 社保照片PS修改教程

热门文章

  1. 几个寓意深远的小故事
  2. 【CSS】笔记2-复合选择器、显示模式、背景
  3. 【Hive】Beeline CLI介绍
  4. 华为鸿蒙和苹果ios哪个好,华为鸿蒙和安卓、IOS相比有哪些区别?最终还是输给了苹果!...
  5. Getting Started and Beyond|云原生应用负载均衡选型指南
  6. Android系统GPS定位实现
  7. vue 提交form表单
  8. HTML——3D旋转+动画 旋转木马案例
  9. python箭头向下怎么变_实现点击下箭头变上箭头来回切换的两种方法【推荐】
  10. 曙光LINUX是什么系统,国产操作系统的曙光----深度操作系统Deepin