#-*-coding:utf-8-*-
"""
需求:51job,打开网页,输入“自动化测试”选择地点为北京,点击搜索,将搜索结果中的薪资保存到.txt文件中
"""
from selenium import webdriver
import time
import re
#打开浏览器,输入网址
driver=webdriver.Chrome()
driver.implicitly_wait(10) #最多等待10秒
driver.maximize_window()
driver.get('https://www.51job.com/')
#定位搜索框,输入自动化测试
driver.find_element_by_id('kwdselectid').send_keys('自动化测试')
#点击地点
driver.find_element_by_id('work_position_input').click()
time.sleep(3)
#清除已经选择的城市,选中后点击
select_els=driver.find_elements_by_css_selector('#work_position_click_multiple_selected>span')
for el in select_els:
el.click()
#选择北京、南京
driver.find_element_by_id('work_position_click_center_right_list_category_000000_010000').click()
#driver.find_element_by_id('work_position_click_center_right_list_category_000000_070200').click()
#点击确定
driver.find_element_by_id('work_position_click_bottom_save').click()
#点击搜索
driver.find_element_by_css_selector('body > div.content > div > div.fltr.radius_5 > div > button').click()
time.sleep(2)
#获取页数
e=driver.find_element_by_class_name('td').text
num=int(re.findall(r'\d+',e)[0])
print(f'一共有{num}页的信息')
job_collection=[] #记录所有的信息
for i in range(num):
print(f'开始写第{i+1}页的内容')
time.sleep(3)
# 获取文本内容
jobs = driver.find_elements_by_css_selector(
'body > div:nth-child(4) > div.j_result > div > div.leftbox > div:nth-child(4) > div.j_joblist > div')
'''for job in jobs:
print(job.text.split('\n')[2])'''
with open('data2.txt', 'w') as f:
for job in jobs:
f.write(job.text.split('\n')[2]+'\n')
job_collection.append(job.text.split('\n')[2])
if i <num-1: #不是最后一页时,点击下一页
driver.find_element_by_css_selector('body > div:nth-child(4) > div.j_result > div > div.leftbox > div:nth-child(4) > div.j_page > div > div > div > ul > li.next > a').click()
driver.find_element_by_class_name('j_result') #稳定页面,是所有的信息加载全就可以点击下一页
print(f'一共收集了{len(job_collection)}条职位信息')
driver.quit()
51job收集职位信息,保存在text中
最新推荐文章于 2024-11-09 18:29:17 发布
该博客介绍了如何利用Python的Selenium库自动化操作51job网站,搜索‘自动化测试’职位并定位到北京地区,然后抓取并保存搜索结果中的薪资信息到txt文件。通过代码实现网页交互,包括输入关键词、选择地点、点击搜索、翻页以及数据存储。最终,程序收集并展示了所有职位信息。
摘要由CSDN通过智能技术生成