51job收集职位信息,保存在text中

该博客介绍了如何利用Python的Selenium库自动化操作51job网站,搜索‘自动化测试’职位并定位到北京地区,然后抓取并保存搜索结果中的薪资信息到txt文件。通过代码实现网页交互,包括输入关键词、选择地点、点击搜索、翻页以及数据存储。最终,程序收集并展示了所有职位信息。
摘要由CSDN通过智能技术生成
#-*-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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值