爬虫-Scrapy(七)抓取招聘信息技能关键词,生成词云图

这个昨晚10点做到今天凌晨2点多,主要是安装wordcount 各种Duang Duang 的报错,建议需要安装的同学自己去下载对应的版本,不要太依赖pip的自动安装。

开搞

1.抓取招聘信息列表

找一个招聘网站,最好不用登录就可以浏览职位的那种,然后输入关键次,先查看下结果。

私心想着如果结果太多,就在加上些企业规模、薪资待遇等条件搜小下爬取范围,因为只为学习研究,数据量大的话太影响效率。

结果发现 关键词:爬虫 + 地区:北京 只有3页110个结果,悲哀,那就全来吧。

a.翻页,实现遍历3页

## 翻页,访问3页的工作列表
def start_requests(self):
    # url 是有规律的,中间的 1.html ,2.html 分别代表第1页和第2页
    for i in range(1,4):   
        url = 'https://某招聘网站/list/2,{}.html?lang=c&postchannel=0000&workyear=99'.format(i)yield scrapy.Request(url, callback=self.parse)

b.每页按招聘列表遍历每个招聘的详情页

    ## 遍历每页的工作列表
    def parse(self, response):
        job_list = json.loads(response.text)['engine_search_result']
        for job in job_list:
            yield scrapy.Request(job['job_href'], callback=self.parse_job)

c.招聘详情页抓取岗位职责和技能要求,解析后返回给item

    # 获取工作职责和技能要求中的英文词
    def parse_job(self, response):
        job_msg_list = response.xpath('//div[@class="bmsg job_msg inbox"]/p/text()').extract()
        for job_msg in job_msg_list:
            words = re.sub("[^A-Za-z]", " ", job_msg.strip()).split()
            for word in words:
                item = SkillcountItem()
                item['job_word'] = word
                yield item

这里用了个正则表达式过滤了下只要应为单词,因为技能要求大部分都是英文的,比如python ,mysql, selenium 什么的。

也尝试过用jieba分词把中文也分成单词来统计,结果发现大部分都没实际意义。

3.item中关键词转为字符,生成词云图

class SkillWordPipeline:
  
def __init__(self): self.job_items = [] def process_item(self, item, spider): self.job_items.append(copy.deepcopy(item['job_word'])) return item def close_spider(self, spider): job_details = ' '.join(self.job_items) self.generate_image(job_details) def generate_image(self,job_details): print(job_details) wc = wordcloud.WordCloud( background_color='white', # 背景色 width=1200, height=800 # max_words=30, # 最大显示单词数 # max_font_size=60 # 频率最大单词字体大小 ) # 生成词云图 wc.generate(job_details) # 转图片 image = wc.to_image() image.show() # 显示词云 #保存到本地 wc.to_file("D:\skill_word.jpg")

代码简洁,可用。 wordcloud 的WordCloud 还有其他的参数,详细可以查,如果要设置字体需指定 字体ttf文件资源路径。

4.结果展示

没图?没图你说杰巴,呵呵,有图的

现在知道改学什么了吧

 

posted @ 2021-01-06 16:31  荆棘谷三季稻  阅读(282)  评论(0)    收藏  举报