爬取前程无忧上的招聘信息

python3爬取前程无忧上的招聘信息

这段时间公司人事部门需要爬取一些岗位信息下来,利用空闲时间写了个脚本下来,代码如下。

#!usr/bin/python
from bs4 import BeautifulSoup
import csv
import time
import random
import requests
import sys
import operator

from urllib.parse import quote



class Main:
	def index(self,i):
		# 岗位
		work_name="行政"
		link="https://www.liepin.com/zhaopin/?industries=040&subIndustry=&dqs=050020&salary=&jobKind=&pubTime=&compkind=&compscale=&searchType=1&isAnalysis=&sortFlag=15&d_headId=aaa42964a7680110daf82f6e378267d9&d_ckId=ff5c36a41d1d524cff2692be11bbe61f&d_sfrom=search_prime&d_pageSize=40&siTag=_1WzlG2kKhjWAm3Yf9qrog%7EqdZCMSZU_dxu38HB-h7GFA&key="+quote(work_name)+"&curPage="+str(i);
		user_agent_list = [
			"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",
			"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
			"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36"
		]
		headers={"User-Agent": random.choice(user_agent_list)}

		try:
			response=requests.get(link,headers=headers)
			response.encoding = 'utf-8'
			html = response.text
			soup=BeautifulSoup(html,'html.parser')
			sojob_result=soup.find("div",class_='sojob-result')
			list_r=sojob_result.find_all("li")
		except BaseException:
			print("抱歉,请您手动打开猎聘网站完成验证操作")
			sys.exit()

		if (len(list_r) == 0):
			print("恭喜你,本次爬取数据任务已完成啦")
			sys.exit()
		# 岗位

		in_data=[]
		out_data = []
		with open("data/liepin_data.txt", "r+", encoding="utf-8") as f:
			f.close()
		for x in range(0,len(list_r)):
			address = ''
			work=list_r[x].find("a").get_text().strip()
			edu=list_r[x].find("span",class_='edu').get_text().strip()
			year=list_r[x].find("span",class_='edu').find_next_sibling("span").get_text().strip()
			money=list_r[x].find("span",class_='text-warning').get_text().strip()
			company=list_r[x].find("p",class_='company-name').get_text().strip()
			data=[work,edu,money,company,year,address]

			in_data=data
			with open("data/liepin_data.txt", "r+", encoding="utf-8") as f:
				out_data=f.read()
				f.close()
			in_data=str(in_data);
			if(operator.eq(in_data,out_data)):
				with open("data/liepin_data.txt", "w+", encoding="utf-8") as f:
					f.write(str([]))
					f.close()
				print("恭喜你,本次爬取数据任务已完成啦")
				sys.exit()
			self.write(work_name, data)
			print(data)
		with open("data/liepin_data.txt", "w+", encoding="utf-8") as f:
			f.write(str(in_data))
			f.close()


	def write(self,work_name,data):
		with open('data/lieping_'+time.strftime("%Y-%m-%d", time.localtime())+'_'+work_name+'.csv', 'a+', encoding='utf-8', newline='') as f:
			writer = csv.writer(f)
			writer.writerow(data)
			f.close()
			print('写入成功')


with open("data/liepin_data.txt", "w+", encoding="utf-8") as f:
	f.write(str([]))
	f.close()

for i in range(0,200):
	Main().index(i);
	sys.stdout.flush()
	time.sleep(random.randint(7,16))
爬取前程无忧网站的招聘信息可以通过以下步骤实现: 1. 使用 Python 中的 requests 库向前程无忧网站发送请求,并获取网页源代码。 2. 使用 BeautifulSoup 库解析网页源代码,提取出招聘信息所在的 HTML 标签。 3. 遍历 HTML 标签,提取出每个招聘信息的职位名称、公司名称、工作地点、薪资、发布日期等关键信息,并保存到本地文件或数据库中。 以下是一个简单的示例代码,可以爬取前程无忧网站上的某个城市的招聘信息: ```python import requests from bs4 import BeautifulSoup city = '北京' # 指定城市 url = f'https://search.51job.com/list/010000,000000,0000,00,9,99,{city},2,1.html' # 拼接 URL headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) # 发送请求 soup = BeautifulSoup(response.text, 'html.parser') # 解析网页源代码 job_list = soup.find_all('div', class_='el') # 提取招聘信息所在的 HTML 标签 for job in job_list: title = job.find('a').get('title') # 职位名称 company = job.find('span', class_='t2').text # 公司名称 location = job.find('span', class_='t3').text # 工作地点 salary = job.find('span', class_='t4').text # 薪资 date = job.find('span', class_='t5').text # 发布日期 # 将提取到的关键信息保存到本地文件或数据库中 with open('job_info.txt', 'a', encoding='utf-8') as f: f.write(f'{title}\t{company}\t{location}\t{salary}\t{date}\n') ``` 需要注意的是,爬取前程无忧网站的招聘信息需要遵守网站的相关规定和法律法规,不得用于商业用途或侵犯他人权益。同时,频繁地爬取网站也可能会被网站认为是恶意行为并进行封禁,因此建议在爬取前程无忧网站时谨慎使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值