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()

这段代码定义了以下功能:

  1. get_job_listings 函数:根据传入的职位和地点参数,构建Boss直聘搜索页面的URL,发送请求获取网页内容,解析HTML提取职位名称、公司名称和薪资信息,最后将结果以列表形式返回。2. index 函数:处理网页根路径的GET和POST请求。GET请求返回搜索表单页面,POST请求调用get_job_listings函数获取数据,并渲染结果页面。

创建HTML模板

在项目目录下创建一个名为templates的文件夹,并在其中创建两个HTML文件:

  1. index.html: 搜索表单页面html

    Boss直聘招聘数据爬取





  2. 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直聘招聘数据并实现可视化!

Python爬取Boss直聘招聘数据及可视化后台管理

原文地址: https://www.cveoy.top/t/topic/bHfa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录