我自己做的爬虫出现了以下报错:
Message: The element reference of
from selenium import webdriver
import time
# from selenium.webdriver.common.service import Service
import csv
#csv存储(‘a’追加,‘w’覆盖)
f = open('招聘数据.csv',mode='w',encoding='utf-8',newline='')
csv_writer = csv.DictWriter(f,fieldnames=[
'职位名称',
'基本信息',
'公司信息'
])
csv_writer.writeheader()#写表头
driver = webdriver.Firefox()
driver.get('https://xy.51job.com/default-xs.php?lang=c')
driver.implicitly_wait(10)
#模拟搜索 绕过反爬
driver.find_element_by_css_selector('.mytxt').click()
driver.find_element_by_css_selector('.mytxt').send_keys('前端开发')
driver.find_element_by_css_selector('.p_but').click()
driver.implicitly_wait(10)
# 获取总信息所在
divs = driver.find_elements_by_css_selector('.sensors_exposure')
# print(divs)
driver.implicitly_wait(10)
def get_job():
#for循环遍历元素
for div in divs:
#职位名称
title = div.find_element_by_css_selector('.at').text
# print(title)
#信息
info = div.find_element_by_css_selector('.info').text
# print(info)
# 公司
cname = div.find_element_by_css_selector('.er').text
dit = {
'职位名称':title,
'基本信息':info,
'公司信息':cname
}
csv_writer.writerow(dit)
print(title,info)
for page in range(1,10):
print('正在获取第{page}页数据')
time.sleep(2)
get_job()
driver.find_element_by_css_selector('.btn-next').click()
driver.implicitly_wait(10)
# 关闭浏览器
print('结束哩~')
# driver.quit()
看下driver.switch_to这个函数的介绍,应该有用
selenium要在打开新页面后,需要进行页面视角的切换,否则代码的视角依然是当前页面(不是新打开的页面),使用driver.switch_to.window(driver.window_handles[-1])即可将代码视角转变到最新打开的页面中,然后在进行提取内容即可。