RDC暑假项目需求:爬取牛客网招聘信息
暑假工作室的合作项目,需求是爬取牛客网计算机行业岗位信息,第一次用scrapy做合作项目,代码有瑕疵还请指教!
前言
Author: Ray
数据来源:牛客网 (https://www.nowcoder.com/)
搜索条件筛选:实习,广州
搜索量:由于牛客网搜索机制的原因,为了让结果更可能的准确,页面最多为5页
搜索项:前端、后端,后台、Android、大数据,算法
(搜索结果中多为字节跳动的JD,可能与牛客网有合作关系。。)
字段说明:(共24项)
projectID:项目ID
jobID:岗位在所属项目下的ID
job:岗位名称
job_type:岗位类型
company:企业名称
location:工作地点
salary:薪酬
attendance:实习要求
regular_chance:转正机会
company_type:企业类型
fund:资金状况
center:总部
duty:岗位职责
requirement:岗位要求
hrID:未知的特别信息
publisher_ID:该招聘信息发布者ID
publisher_name:该招聘信息发布者用户名
average_resume_processing_rate:平均简历处理率
current_resume_processing_rate:当前简历处理率
average_resume_processing_time:平均简历处理时间
current_resume_processing_time:当前简历处理时间
test:牛客网上笔试题目数目
interview_comment:面试短评数目
interview_experience:面经数目
code
spider:
# Author: Ray
# 数据来源:牛客网 (https://www.nowcoder.com/)
import scrapy
# from scrapy.spiders import Spider
from nowcoder.items import NowcoderItem
import re
import time
# scrapy crawl recruit -o recruit.csv
class RecruitSpider(scrapy.Spider):
name = 'recruit'
allowed_domains = ['nowcoder.com']
start_urls = ['https://www.nowcoder.com']
def start_requests(self):
base_url = 'https://www.nowcoder.com/intern/center?city=广州&recruitType=1&query='
# 搜索结果为牛客网默认排序
# searchbox = ['前端', '后端', 'Android','大数据,算法']
search = str(input('请输入搜索项:'))
request_url = base_url + search + '&page='
for page in range(1, 6):
yield scrapy.Request(request_url + str(page), callback=self.parse)
def parse(self, response):
further_request_url = response.xpath('//a[@class = "reco-job-title"]/@href').extract()
for i in further_request_url:
detail_url = 'https://www.nowcoder.com' + i
time.sleep(1)
yield scrapy.Request(detail_url, callback=self.parse_job, meta={
})
def