python爬取招聘网站源码及数据分析_Python爬取招聘网站进行数据分析,福利待遇一清二楚,高薪很简单...

本次主要围绕数据分析岗位的招聘情况, 进行一个简单的数据分析环境win8, python3.7, pycharm, jupyter notebook关注后私信小编 PDF领取十套电子文档书籍正文1. 明确分析目的了解数据分析岗位的最新招聘情况, 包括地区分布, 学历要求, 经验要求, 薪资水平等.2. 数据收集这里借助爬虫, 爬取招聘网站的招聘信息, 进而分析出相关的薪资以及招聘要求.2.1 目标...
摘要由CSDN通过智能技术生成

本次主要围绕数据分析岗位的招聘情况, 进行一个简单的数据分析

环境

win8, python3.7, pycharm, jupyter notebook

关注后私信小编 PDF领取十套电子文档书籍

正文

1. 明确分析目的

了解数据分析岗位的最新招聘情况, 包括地区分布, 学历要求, 经验要求, 薪资水平等.

2. 数据收集

这里借助爬虫, 爬取招聘网站的招聘信息, 进而分析出相关的薪资以及招聘要求.

2.1 目标站点分析

通过对目标站点的分析, 我们需要确定目标站点的请求方式, 以及网页结构.

2.2 新建scrapy项目

1. 在cmd命令行窗口中任意路径下执行以下代码, 比如在"D:pythonTests"目录下新建zhaopin项目.

d:

cd D:pythonTests

scrapy startproject zhaopin

2. 在完成了zhaopin项目创建之后, 接下来就是在zhaopin项目文件夹中新建spider爬虫主程序

cd zhaopin

scrapy genspider zhaopinSpider zhaopin.com

这样就完成项目zhaopin的创建, 开始编写我们的程序吧.

2.3 定义items

在items.py文件中定义需要爬取的招聘信息.

import scrapy

from scrapy.item import Item, Field

class zhaopinItem(Item):

# define the fields for your item here like:

# name = scrapy.Field()

JobTitle = Field() #职位名称

CompanyName = Field() #公司名称

CompanyNature = Field() #公司性质

CompanySize = Field() #公司规模

IndustryField = Field() #所属行业

Salary = Field() #薪水

Workplace = Field() #工作地点

Workyear = Field() #要求工作经验

Education = Field() #要求学历

RecruitNumbers = Field() #招聘人数

ReleaseTime = Field() #发布时间

Language = Field() #要求语言

Specialty = Field() #要求专业

PositionAdvantage = Field() #职位福利

2.4 编写爬虫主程序

在zhaopinSpider.py文件中编写爬虫主程序

import scrapy

from scrapy.selector import Selector

from scrapy.spiders import CrawlSpider

from scrapy.http import Request

from zhaopin.items import zhaopinItem

class ZhaoPinSpider(scrapy.Spider):

name = "ZhaoPinSpider"

allowed_domains = ['zhaopin.com']

start_urls = ['https://xxxx.com/list/2,{0}.html?'.format(str(page)) for page in range(1, 217)]

def parse(self, response):

'''

开始第一页

:param response:

:return:

'''

yield Request(

url = response.url,

callback = self.parse_job_url,

meta={},

dont_filter= True

)

def parse_job_url(self, response):

'''

获取每页的职位详情页url

:param response:

:return:

'''

selector = Selector(response)

urls = selector.xpath('//div[@class="el"]/p/span')

for url in urls:

url = url.xpath('a/@href').extract()[0]

yield Request(

url = url,

callback = self.parse_job_info,

meta = {},

dont_filter = True

)

def parse_job_info(self, response):

'''

解析工作详情页

:param response:

:return:

'''

item = Job51Item()

selector = Selector(response)

JobTitle = selector.xpath('//div[@class="cn"]/h1/text()').extract()[0].strip().replace(' ','').replace(',',';')

CompanyName = selector.xpath('//div[@class="cn"]/p[1]/a[1]/text()').extract()[0].strip().replace(',',';')

CompanyNature = selector.xpath('//div[@class="tCompany_sidebar"]/div/div[2]/p[1]/text()').extract()[0].strip().replace(',',';')

CompanySize = selector.xpath('//div[@class="tCompany_sidebar"]/div/div[2]/p[2]/text()').extract()[0].strip().replace(',',';')

IndustryField = selector.xpath('//div[@class="tCompany_sidebar"]/div/div[2]/p[3]/text()').extract()[0].strip().replace(',',';')

Salary = selector.xpath('//div[@class="cn"]/strong/text()').extract()[0].strip().replace(',',';')

infos = selector.xpath('//div[@class="cn"]/p[2]/text()').extract()

Workplace = infos[0].strip().replace(' ','').replace(',',';')

Workyear = infos[1].strip().replace(' ','').replace(',',';')

if len(infos) == 4:

Education = ''

RecruitNumbers = infos[2].strip().replace(' ', '').replace(',',';')

ReleaseTime = infos[3].strip().replace(' ', '').replace(',',';')

else:

Education = infos[2].strip().replace(' ', '').replace(',',';')

RecruitNumbers = infos[3].strip().replace(' ', '').replace(',',';')

ReleaseTime = infos[4].str

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值