Selenium 根据输入的公司名称来爬取天眼查中的公司的详细信息
- 本博客仅作学习教程,重在介绍如何使用selenium,不建议大家爬取数据量太大的公司名称及其详细信息。
1、下载驱动并设置环境变量
1.1、查看你的浏览器的版本
在网址栏输入:chrome://version
我的浏览器的版本是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 pd
def message_to_df(message,company):
registered_capital = []
contributed_capital = []
Date_of_Establishment = []
ManagementForms = []
Unified_social_credit_code = []
companyNo = []
Taxpayer_Identification_Number =[]
Or