好想学python下载_python爬取某查查用selenium终于搞定了!

[Python] 纯文本查看 复制代码from selenium import webdriver

import time

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.common.keys import Keys

import xlrd

from xlutils.copy import copy

import random

####################################模拟使用IE浏览器登陆####################################

option = webdriver.IeOptions()

option.add_argument('--user-agent="Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"')

path = 'C:\Program Files (x86)\Internet Explorer\IEDriverServer.exe'

driver = webdriver.Ie(executable_path=path, options=option)

driver.implicitly_wait(10)

####################################通过名称获取网页####################################

#打开搜索页

driver.get('https://www.qcc.com/search?key=%E6%B1%9F%E5%AE%81%E5%8E%BF%E8%93%9D%E5%A4%A9%E7%A0%96%E5%8E%82')

time.sleep(20) # 20s内手动登录

#输入搜索词

#corps = ['广州海洋勘探开发总公司', '广东车海洋环保科技有限公司', '广东粤新海洋工程装备股份有限公司', '广东省海洋工程职业技术学校(广东省海洋工程技工学校)',]

#'广东华风海洋信息系统服务有限公司', '广州海洋天网科技股份有限公司', '中船海洋与防务装备股份有限公司', '广州海洋生物科普有限公司']

for i in range(0, len(corps)):

corp = corps[i]

#清空搜索框

driver.find_element_by_id('headerKey').clear()

#向搜索框输入搜索词

driver.find_element_by_id('headerKey').send_keys(corp)

time.sleep(6)

try:

#获取公司链接

link = driver.find_element_by_xpath('//a[@class="list-group-item keyMoveItem"]').get_attribute("href")

#打开公司链接

driver.get(link)

time.sleep(6)

except:

print(corp + ':未查找到信息!')

####################################获取信息####################################

#获取子界面

elements = driver.find_elements_by_class_name('company-nav-head')

for element in elements:

ele = element.get_attribute('href')

#点击基本信息

if 'base' in ele:

element.click()

#获取公司名称

corpname = driver.find_element_by_xpath('//div[@class="row title jk-tip"]/h1').text

#获取所属行业

try:

hangye = driver.find_element_by_xpath('//table[@class="ntable"]//tr[4]/td[6]').text

except:

hangye = 'None'

#获取人员规模

try:

renyuan = driver.find_element_by_xpath('//table[@class="ntable"]//tr[6]/td[2]').text

except:

renyuan = 'None'

#获取经营范围

try:

jingying = driver.find_element_by_xpath('//table[@class="ntable"]//tr[9]/td[2]').text

except:

jingying = 'None'

#获取标签

try:

tags = driver.find_elements_by_xpath('//div[@class="row tags"]/span')

tagname = []

for tag in tags:

tagname.append(tag.text)

tagname = "、".join(tagname)

except:

zl = "None"

#print(corpname + '-'+ hangye + '-'+ renyuan + '-'+ jingying + '-'+ tagname)

#点击专利信息

elif 'assets' in ele:

element.click()

#获取科技创新含量

try:

techscore = driver.find_element_by_xpath('//div[@class="zlchart-tcount"]/span').text

except:

techscore = "None"

#获取专利数量

try:

zlcount = driver.find_element_by_xpath('//aspan[@class="title"]/span[@class="tbadge"]').text

except:

zlcount = "None"

#获取专利信息

try:

zlments = driver.find_elements_by_xpath('//section[@id="zhuanlilist"]//table[@class="ntable ntable-odd"]//tr/td[5]')

zls = []

for zlment in zlments:

zls.append(zlment.text)

zl = "、".join(zls)

except:

zl = "None"

#print(corpname + '-' + techscore + '-' + zlcount + '-' + zl)

else:

pass

time.sleep(4)

####################################保存信息####################################

#保存到excel中

rexcel = xlrd.open_workbook("C:/Users/SNT/Desktop/qcc.xls")

table = rexcel.sheets()[0] # 打开第一个sheet

rows = table.nrows # 获取行数

# 用xlutils方法追写excel

excel = copy(rexcel) # 用xlutis提供的copy方法将xlrd对象转化为xlwt对象

sheet = excel.get_sheet(0) # 获取第一个sheet

sheet.write(rows, 0, rows)

sheet.write(rows, 1, corpname)

sheet.write(rows, 2, tagname)

sheet.write(rows, 3, hangye)

sheet.write(rows, 4, renyuan)

sheet.write(rows, 5, jingying)

sheet.write(rows, 6, techscore)

sheet.write(rows, 7, zlcount)

sheet.write(rows, 8, zl)

sheet.write(rows, 9, corp)

excel.save("C:/Users/SNT/Desktop/qcc.xls")

print(corp +'信息保存完毕!')

sltime = 30*random.random()

print('休息' + str(sltime) +'s......\n')

time.sleep(sltime)

print(str(i+1) +'家公司信息保存完毕')

#关闭浏览器

driver.quit()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值