爬虫项目实战2.1 Selenium爬取Boss招聘信息
完成:
1.爬取信息
2.基于爬取结果筛选符合条件的信息
岗位名称、薪资、岗位要求、地区、公司名称、公司规模、细节链接
3.筛选base杭州的岗位保存到csv文件中
"""
[课 题]: Python爬取boss直聘
[开发环境]:
python 3.8
pycharm 专业版
selenium3.141.0
代码编写思路
1. 打开一个浏览器
2. 打开一个网址
3. 获取数据
4. 保存数据
"""
from selenium import webdriver # 操作浏览器的类
import csv
f = open('boss-杭州.csv', mode='a', encoding='utf-8-sig', newline='')
csv_writer = csv.writer(f)
csv_writer.writerow(['岗位名称', '薪资待遇', '岗位详情', '岗位地区', '公司福利', '公司名称', '公司规模', '岗位需要技能', '岗位详情链接'])
# 1. 打开一个浏览器
driver = webdriver.Edge()#Edge浏览器
# driver = webdriver.Chrome()#谷歌浏览器
for page in range(1, 11):
# 2. 打开一个网址
driver.get(r'https://www.zhipin.com/web/geek/job?query=数据分析&city=100010000&page='+str(page))
# 等待10秒
driver.implicitly_wait(10)
# 3. 获取数据 定位数据
# 获取到所有的商品信息,selector定位关键信息所在区域:.job-card-wrapper,复制选项可以定位到具体标签
lis = driver.find_elements_by_css_selector('.job-card-wrapper')
# 二次提取岗位具体信息,将位于杭州的岗位保存在csv中
for li in lis:
job_name = li.find_element_by_css_selector('.job-name').text
salary = li.find_element_by_css_selector('.salary').text
tag_list = li.find_element_by_css_selector('.tag-list').text
job_area = li.find_element_by_css_selector('.job-area').text
info_desc = li.find_element_by_css_selector('.info-desc').text
company_name = li.find_element_by_css_selector('.company-name').text
company_tag_list = li.find_element_by_css_selector('.company-tag-list').text
job_need = li.find_element_by_css_selector('.job-card-footer.clearfix ul').text.split('|')
job_url = li.find_element_by_css_selector('.job-card-body.clearfix a').get_attribute('href')
# print(job_name, job_area, salary, tag_list, company_name, company_tag_list, info_desc)
# 4. 保存数据
if '杭州' in job_area:
csv_writer.writerow([job_name, salary, tag_list, job_area, info_desc, company_name, company_tag_list, job_need, job_url])
But容易出现网络不稳定造成的无法定位元素所在位置的情况,小范围爬取可以
4.基于csv分析后续