python爬虫前程无忧——数据分析+词云图

本文使用Python爬虫抓取职位信息,包括职位名称、薪资、招聘单位等,存储到MongoDB数据库。进一步进行数据分析,对比‘数据分析’、‘大数据开发工程师’、‘数据采集’岗位的薪资,绘制条形图;分析这些岗位在成都、北京等地的分布,用饼图展示,并探讨1-3年经验的大数据岗位薪资水平。最后,通过词云图展现职位关键词。
摘要由CSDN通过智能技术生成

要求:

1.爬取字段:职位名称、薪资水平、招聘单位、工作地点、工作经验、学历要求、工作内容(岗位职责)、任职要求(技能要求)。
2.数据存储:将爬取的数据存储到MongoDB数据库中。
3.数据分析与可视化:
(1)分析“数据分析”、“大数据开发工程师”、“数据采集”等岗位的平均工资、最高工资、最低工资,并作条形图将结果展示出来;
(2)分析“数据分析”、“大数据开发工程师”、“数据采集”等大数据相关岗位在成都、北京、上海、广州、深圳的岗位数,并做饼图将结果展示出来。
(3)分析大数据相关岗位1-3年工作经验的薪资水平(平均工资、最高工资、最低工资),并做出条形图展示出来;
4.词云图

基本结构图:

scrapy startproject qianchen01
cd qianchen01
scrapy genspider -t crawl qianchen qianchen.com

在这里插入图片描述

基本配置:

items.py

import scrapy


class Qianchen01Item(scrapy.Item):
    position = scrapy.Field()   #职位名称
    salary = scrapy.Field()     #工资
    company = scrapy.Field()    #公司名字
    where = scrapy.Field()      #地点

    job_require = scrapy.Field() #工作要求、内容
    experience = scrapy.Field() #经验
    education = scrapy.Field()  #教育

pipelines.py(连接MongoDB)

from pymongo import MongoClient

class Qianchen01Pipeline(object):
    # 在open_spider方法中连接MongoDB,创建数据库和集合,也可以在__init__初始化方法中处理这些操作
    def open_spider(self, spider):
        self.db = MongoClient('localhost', 27017).QCa_db
        self.collection = self.db.qianchen_collection

    def process_item(self, item, spider):
        # 把Item转化成字典方式,然后添加数据
        self.collection.insert_one(dict(item))
        return item

settings.py

USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4168.2 Safari/537.36'
ROBOTSTXT_OBEY = False
DOWNLOAD_DELAY = 1
ITEM_PIPELINES = {
   
   'qianchen01.pipelines.Qianchen01Pipeline': 300,
}

2.数据存储:将爬取的数据存储到MongoDB数据库中。 qianchen.py

# -*- coding: utf-8 -*-
import scrapy
from qianchen01.items import Qianchen01Item


class QianchenSpider(scrapy.Spider):
    name = 'qianchen'
    allowed_domains = ['51job.com']
    start_urls = ['https://search.51job.com/list/000000,000000,0130%252C7501%252C7506%252C7502,01%252C32%252C38,9,99,%2520,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare=']

    def parse(self, response):
        joblist = response.xpath("//div[@id='resultList']/div[@class='el']")
        for job in joblist:
            item = Qianchen01Item()
            item["position"] = job.xpath("./p/span/a/@title").extract_first() #职位
            item["salary"] = job.xpath("./span[@class='t4']/text()").extract() #工资
            item["company"] = job.xpath("./span[@class='t2']/a/@title").extract_first() #公司名字
            item["where"] = job.xpath("./span[@class='t3']/text()").extract_first() #地点
            #详情页面
            detail_url = job.xpath("./p/span/a/@href").extract_first()
            yield scrapy.Request(url=detail_url, callback=self.parse_detail, meta={
   "item": item})
        next_url = response.xpath("//div[@class='p_in']//li[@class='bk'][2]/a/@href").extract_first()
        if not next_url:
            return
        yield scrapy.Request(url=next_url, callback=self.parse)

    def parse_detail(self, response):
        item = response.meta["item"]
        item["job_require"] = response.xpath("//div[@class='bmsg job_msg inbox']/p/text()").extract()#工作需求
        item["education"] = response.xpath("//div[@class='tHeader tHjob']/div/div/p[2]/text()").extract()[2]#学历
        item["experience"] = response.xpath("//div[@class='tHeader tHjob']/div/div/p[2]/text()").extract()[1]#经验<
根据提供的引用内容,Python招聘网站数据可视化是可行的。通过使用Python的网络爬虫技术,可以提取招聘网站上的有价值的信息数据。然后,可以使用HTML、CSS、JavaScript、Flask框架、Echarts、WordCloud等技术对数据进行可视化展现,以便更好地利用数据解决实际问题。 具体的步骤如下: 1. 使用Python的网络爬虫技术,例如BeautifulSoup或Scrapy,从招聘网站上提取数据。可以提取职位信息、公司信息、薪资信息等。 2. 对提取的数据进行整理和清洗,以便后续的可视化处理。可以使用Python的数据处理库,例如Pandas。 3. 使用Flask框架搭建一个Web应用程序,用于展示可视化的数据。可以使用Flask提供的路由功能,将不同的数据展示页面与对应的URL关联起来。 4. 使用Echarts库创建各种图表,例如柱状图、折线图、饼图等,来展示招聘数据的各种统计信息。可以根据需求选择合适的图表类型。 5. 使用WordCloud库创建词云图,以展示职位描述中的关键词。词云图可以直观地展示职位的热门关键词。 6. 使用HTML、CSS和JavaScript来美化和定制可视化页面的样式和布局。可以使用CSS样式表来设置图表的颜色、字体等,使用JavaScript来实现交互功能,例如鼠标悬停显示详细信息等。 通过以上步骤,可以实现Python招聘网站数据的可视化展示,帮助人们更好地理解和利用这些数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值