这是一篇关于如何利用Python在前程无忧高效投递简历的攻略,以下将对具体的步骤和操作进行详细的讲解。
1. 准备工作
在使用Python进行自动投递之前,需要准备好以下内容:
- Python开发环境:推荐安装Python 3.x版本;
- 相关库的安装:需要安装selenium、webdriver和pandas库;
- 浏览器驱动程序:需要下载并安装适合自己电脑浏览器版本的浏览器驱动。
2. 程序实现步骤
本攻略主要分为4个步骤,包括登录前程无忧、搜索关键字、爬取职位信息、投递简历。
步骤1:登录前程无忧
在代码实现中,可以通过以下代码实现自动登录:
from selenium import webdriver
# 初始化浏览器
browser = webdriver.Firefox()
# 打开登录页面
browser.get('https://passport.58.com/login/')
# 输入用户名和密码
browser.find_element_by_id('username').send_keys('xxx')
browser.find_element_by_id('password').send_keys('xxx')
# 点击登录按钮
browser.find_element_by_id('btnSubmit').click()
步骤2:搜索关键字
搜索操作可以通过将关键字输入到搜索框中,然后点击搜索按钮来实现。以下代码展示了如何实现自动搜索:
# 输入搜索关键字
browser.find_element_by_id('search_input').send_keys('python')
# 点击搜索按钮
browser.find_element_by_id('search_button').click()
步骤3:爬取职位信息
在搜索页面中,可以通过xpath语法定位到职位信息,并将其保存到pandas数据框中。以下代码展示了如何实现爬取职位信息:
import pandas as pd
# 爬取职位信息
position_list = browser.find_elements_by_xpath('//div[@class="job-item"]/div[1]/a[1]')
salary_list = browser.find_elements_by_xpath('//div[@class="job-item"]/div[2]/p[1]')
company_list = browser.find_elements_by_xpath('//div[@class="job-item"]/div[2]/p[2]/a[1]')
address_list = browser.find_elements_by_xpath('//div[@class="job-item"]/div[2]/p[2]/em[1]')
# 将职位信息保存到pandas数据框中
df = pd.DataFrame({
'position': [p.text for p in position_list],
'salary': [s.text for s in salary_list],
'company': [c.text for c in company_list],
'address': [a.text for a in address_list]
})
步骤4:投递简历
最后一步是投递简历。在实现过程中,需要注意两个问题:首先,如果职位需要登录才能看到联系方式,那么需要在投递简历前重新登录一次;其次,投递简历的时候需要找到“投递简历”的按钮并点击。以下代码展示了如何实现投递简历:
# 遍历每一个职位
for i in range(len(df)):
# 进入职位详情页
browser.get(position_list[i].get_attribute('href'))
# 如果需要登录才能看到联系方式,重新登录一次
if 'login.58.com' in browser.current_url:
browser.find_element_by_id('username').send_keys('xxx')
browser.find_element_by_id('password').send_keys('xxx')
browser.find_element_by_id('btnSubmit').click()
# 点击“投递简历”按钮
browser.find_element_by_id('resumeDeliver').click()
3. 示例说明
下面将通过两个例子来说明如何利用Python完成简历投递的自动化操作。
示例1:投递有“Python”关键字的职位
假设我们已经安装好了selenium、webdriver和pandas库,并且已经下载好了Firefox浏览器的驱动,接下来可以通过以下代码实现自动投递有“Python”关键字的职位:
from selenium import webdriver
import pandas as pd
# 初始化浏览器
browser = webdriver.Firefox()
# 打开登录页面
browser.get('https://passport.58.com/login/')
# 输入用户名和密码
browser.find_element_by_id('username').send_keys('xxx')
browser.find_element_by_id('password').send_keys('xxx')
# 点击登录按钮
browser.find_element_by_id('btnSubmit').click()
# 输入搜索关键字
browser.find_element_by_id('search_input').send_keys('python')
# 点击搜索按钮
browser.find_element_by_id('search_button').click()
# 爬取职位信息
position_list = browser.find_elements_by_xpath('//div[@class="job-item"]/div[1]/a[1]')
salary_list = browser.find_elements_by_xpath('//div[@class="job-item"]/div[2]/p[1]')
company_list = browser.find_elements_by_xpath('//div[@class="job-item"]/div[2]/p[2]/a[1]')
address_list = browser.find_elements_by_xpath('//div[@class="job-item"]/div[2]/p[2]/em[1]')
# 将职位信息保存到pandas数据框中
df = pd.DataFrame({
'position': [p.text for p in position_list],
'salary': [s.text for s in salary_list],
'company': [c.text for c in company_list],
'address': [a.text for a in address_list]
})
# 遍历每一个职位,并投递简历
for i in range(len(df)):
# 进入职位详情页
browser.get(position_list[i].get_attribute('href'))
# 如果需要登录才能看到联系方式,重新登录一次
if 'login.58.com' in browser.current_url:
browser.find_element_by_id('username').send_keys('xxx')
browser.find_element_by_id('password').send_keys('xxx')
browser.find_element_by_id('btnSubmit').click()
# 点击“投递简历”按钮
browser.find_element_by_id('resumeDeliver').click()
print('完成简历自动投递!')
示例2:投递有“Python”关键字且薪资大于10000的职位
与示例1类似,不同之处在于需要筛选出符合条件的职位,以下代码展示了如何实现:
from selenium import webdriver
import pandas as pd
# 初始化浏览器
browser = webdriver.Firefox()
# 打开登录页面
browser.get('https://passport.58.com/login/')
# 输入用户名和密码
browser.find_element_by_id('username').send_keys('xxx')
browser.find_element_by_id('password').send_keys('xxx')
# 点击登录按钮
browser.find_element_by_id('btnSubmit').click()
# 输入搜索关键字
browser.find_element_by_id('search_input').send_keys('python')
# 点击搜索按钮
browser.find_element_by_id('search_button').click()
# 爬取职位信息
position_list = browser.find_elements_by_xpath('//div[@class="job-item"]/div[1]/a[1]')
salary_list = browser.find_elements_by_xpath('//div[@class="job-item"]/div[2]/p[1]')
company_list = browser.find_elements_by_xpath('//div[@class="job-item"]/div[2]/p[2]/a[1]')
address_list = browser.find_elements_by_xpath('//div[@class="job-item"]/div[2]/p[2]/em[1]')
# 将职位信息保存到pandas数据框中
df = pd.DataFrame({
'position': [p.text for p in position_list],
'salary': [s.text for s in salary_list],
'company': [c.text for c in company_list],
'address': [a.text for a in address_list]
})
# 筛选符合条件的职位,并投递简历
for i in range(len(df)):
if 'python' in df['position'][i].lower() and float(df['salary'][i].replace('元/月', '')) > 10000:
# 进入职位详情页
browser.get(position_list[i].get_attribute('href'))
# 如果需要登录才能看到联系方式,重新登录一次
if 'login.58.com' in browser.current_url:
browser.find_element_by_id('username').send_keys('xxx')
browser.find_element_by_id('password').send_keys('xxx')
browser.find_element_by_id('btnSubmit').click()
# 点击“投递简历”按钮
browser.find_element_by_id('resumeDeliver').click()
print('完成简历自动投递!')
以上就是如何利用Python在前程无忧高效投递简历的完整攻略,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用python如何在前程无忧高效投递简历 - Python技术站