Python爬取Boss直聘招聘数据及可视化后台管理
Python爬取Boss直聘招聘数据并实现可视化后台管理
想要获取Boss直聘上的招聘信息?本文将教你如何使用Python编写爬虫,抓取Boss直聘的招聘数据,并使用Flask框架搭建网页,实现数据的前端展示和后台管理功能。
项目准备
首先,确保你已经安装了以下Python库:pythonpip install requests beautifulsoup4 flask
requests: 用于发送HTTP请求获取网页内容。-beautifulsoup4: 用于解析HTML网页提取所需数据。-flask: 用于构建网页应用。
编写爬虫代码
创建一个名为crawler.py的文件,并将以下代码复制到文件中:pythonimport requestsfrom bs4 import BeautifulSoupfrom flask import Flask, render_template, request
app = Flask(name)
def get_job_listings(job_title, location): url = f'https://www.zhipin.com/job_detail/?query={job_title}&city={location}' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36' } response = requests.get(url, headers=headers) soup = BeautifulSoup(response.content, 'html.parser') job_listings = soup.find_all('div', class_='job-primary')
results = [] for listing in job_listings: title = listing.find('div', class_='job-title').text.strip() company = listing.find('div', class_='company-text').a.text.strip() salary = listing.find('span', class_='red').text.strip() results.append({'title': title, 'company': company, 'salary': salary})
return results
@app.route('/', methods=['GET', 'POST'])def index(): if request.method == 'GET': return render_template('index.html') elif request.method == 'POST': job_title = request.form.get('job_title') location = request.form.get('location') job_listings = get_job_listings(job_title, location) return render_template('results.html', job_listings=job_listings)
if name == 'main': app.run()
这段代码定义了以下功能:
get_job_listings函数:根据传入的职位和地点参数,构建Boss直聘搜索页面的URL,发送请求获取网页内容,解析HTML提取职位名称、公司名称和薪资信息,最后将结果以列表形式返回。2.index函数:处理网页根路径的GET和POST请求。GET请求返回搜索表单页面,POST请求调用get_job_listings函数获取数据,并渲染结果页面。
创建HTML模板
在项目目录下创建一个名为templates的文件夹,并在其中创建两个HTML文件:
-
index.html: 搜索表单页面htmlBoss直聘招聘数据爬取
-
results.html: 数据展示页面html招聘数据结果
{% for job in job_listings %}职位 公司 薪资 {% endfor %}{{ job.title }} {{ job.company }} {{ job.salary }}
运行程序
在命令行中执行以下命令启动程序:bashpython crawler.py
打开浏览器访问 http://localhost:5000/,即可使用该应用进行Boss直聘招聘数据爬取和查看。
注意: 爬虫需要遵守网站的robots协议,请勿频繁请求网站,避免对目标网站造成压力。
希望这篇文章能够帮助你使用Python爬取Boss直聘招聘数据并实现可视化!
原文地址: https://www.cveoy.top/t/topic/bHfa 著作权归作者所有。请勿转载和采集!