ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

利用selenium获取前程无忧招聘信息

2020-05-23 16:05:32  阅读:304  来源: 互联网

标签:name driver 招聘 selenium element click div 前程无忧 find


目的:

如果想找工作,可以先把所有相关信息爬取下来,做对比:

说明:

我的工作是生物信息,所以搜索job的是:生物信息工程师 :

我期望的工作地点是天津和武汉: 地区那里按照要求写即可。

关于每份工作详细的任职要求,在一个链接里面,所以定义了函数获取相应的信息,用到了requests + bs4的爬取方式。

 

 

代码:

#!/usr/bin/env python
#-*- coding:utf-8 -*-


"""
目的:

从前程无忧网站上提取指定工作的详细信息
"""


import time
from selenium import webdriver
import requests
from bs4 import BeautifulSoup



def get_soup(url):
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0"
    }
    try:
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            # response.apparent_encoding = "utf-8"
            html = response.content
            soup = BeautifulSoup(html, 'html.parser')
    except:
        print("爬取失败")
    return soup


def get_content(soup):
    content = soup.find("div", class_="bmsg job_msg inbox").text
    # print(content)
    return content.strip()
    

def final_result(url):
    soup = get_soup(url)
    result = get_content(soup)
    return result


# 登陆
driver = webdriver.Firefox()
driver.get("https://login.51job.com/login.php?lang=c") 

driver.find_element_by_id("loginname").send_keys("用户名")
driver.find_element_by_id("password").send_keys("密码")
driver.find_element_by_id("login_btn").click()
print("登陆中,请稍等。。。")
time.sleep(20)

# 返回首页
print("进入首页。。。")
driver.find_element_by_xpath("/html/body/div[1]/div[4]/div/p/a[1]").click()
time.sleep(5)
# 添加多个地区
driver.find_element_by_xpath("/html/body/div[3]/div/div[1]/div/div/p[2]/em").click()
driver.find_element_by_xpath('//*[@id="work_position_click_center_right_list_category_000000_180200"]').click()
driver.find_element_by_xpath('//*[@id="work_position_click_bottom_save"]').click()

# 搜索job
print("搜索职位。。")
driver.find_element_by_id("kwdselectid").send_keys("生物信息工程师")
driver.find_element_by_xpath("/html/body/div[3]/div/div[1]/div/button").click()
time.sleep(20)


# 获取内容
all_list = driver.find_element_by_id("resultList").find_elements_by_class_name("el")

for item in all_list[1:]:
    jobname = item.find_element_by_class_name("t1").find_element_by_tag_name("a").text
    jobhref = item.find_element_by_class_name("t1").find_element_by_tag_name("a").get_attribute("href") 
    jobskill = final_result(jobhref)
        
    company = item.find_element_by_class_name("t2").text
    site = item.find_element_by_class_name("t3").text
    money = item.find_element_by_class_name("t4").text
    date = item.find_element_by_class_name("t5").text 
    
    out_dict = {
        "职位": jobname,
        "职位要求": jobskill,
        "职位详细信息": jobhref,
        "招聘公司": company,
        "工作地点": site,
        "薪水": money,
        "发布日期": date
    }
    
    print(out_dict)

# print(len(all_list))

 

标签:name,driver,招聘,selenium,element,click,div,前程无忧,find
来源: https://www.cnblogs.com/lmt921108/p/12942850.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有