**抓取58job, 赶集job以及智联招聘,并使用数据分析生成echarts图**

爬虫部分

爬虫部分使用scrapy-redis分布式爬虫,通过redis实现增量爬取以及去重,并将所有的数据直接保存到redis中,后续再做处理

github:https://github.com/AndrewAndrea/spider_work

代码已经提交到GitHub中,不是很完善,爬虫爬取的信息没有详情页的数据,只有赶集网的数据是详情页的。有点懒得写了。

可以自己把代码clone下来,在做完善。

抓取智联招聘的信息

这个很简单

抓取58同城的招聘信息

这个也很简单,我的代码只做了一个城市的抓取,可以做扩展

抓取赶集网的招聘信息

这个也简单。就不说了,也是一个城市的信息。

最后关于爬虫如何同时启动多个spider

如何将所有的爬虫的同时启动,这个我写一下,记录一下,避免以后给忘了。

首先,需要在爬虫文件新建一个commond包,在该目录下新建文件crawlall.py。

目录结构:

crawlall.py中的内容:

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2019/5/6 16:31# @Author : zhao.jia# @Site :# @File : crawlall.py# @Software: PyCharmfromscrapy.commands importScrapyCommand

classCommand(ScrapyCommand):

requires_project = Truedefsyntax(self):

return'[options]'defshort_desc(self):

return'Runs all of the spiders'defrun(self,args,opts):

spider_list = self.crawler_process.spiders.list()

forname inspider_list:

self.crawler_process.crawl(name,**opts.__dict__)

self.crawler_process.start()

更改settings.py

COMMANDS_MODULE = 'spider_work.command'

启动

scrapy crawlall

爬虫部分到此结束,单个如何启动大家也都知道。

可以扩张的地方很多,所以再补充几点:

1、详细的招聘信息的抓取

2、可以将代码直接改成通用爬虫

3、58job和赶集网的都是同城的,可以扩展到全国,写个配置文件,拼接URL就行。可以分别根据每个网站做关键词搜索爬虫,而不是单一使用智联的关键词。

4、增加异常处理

5、增加数据去重存到 redis 中

数据转换部分(可以忽略)

我是通过 MySQL 去做的,所以需要将 Redis 中的数据取出来存到 MySQL 中。

Redis 存储的类型是列表,所以有重复数据。redis 取数据采用 lpop 方法。通过给 MySQL 表中的字段加索引,来去重,插入语句使用 replace into 而不是 insert into。 可以去百度一下,看看博客。

process_item_mysql.py

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2019/4/29 23:15# @Author : zhao.jia# @Site :# @File : process_item_mysql.py# @Software: PyCharmimportpymysql

importredis

importjson

defprocess_item(key):

Redis_conn = redis.StrictRedis(host='ip',port=6379,db=0,password='pass')

MySql_conn = pymysql.connect(host='ip',user='root',passwd='pass',port=3306,db='zhaopin')

cur = MySql_conn.cursor()

while True:

data = Redis_conn.lpop(key)

ifdata:

try:

data = json.loads(data.decode('unicode_escape'),strict=False)

exceptExceptionase:

process_item(key)

print(data)

try:

if'-'indata['city']:

city = data['city'].split('-')[0]

else:

city = data['city']

exceptExceptionase:

city = data['city']

lis = (

pymysql.escape_string(data['jobType']),pymysql.escape_string(data['jobName']),pymysql.escape_string(data['emplType']),pymysql.escape_string(data['eduLevel']),pymysql.escape_string(data['salary']),pymysql.escape_string(data['companyName']),pymysql.escape_string(city),pymysql.escape_string(data['welfare']),pymysql.escape_string(data['workingExp']))

sql = (

"replace into work(jobType, jobName, emplType, eduLevel, salary, companyName, city, welfare, workingExp) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')"% lis)

try:

cur.execute(sql)

MySql_conn.commit()

exceptExceptionase:

MySql_conn.rollback()

else:

breakcur.close()

MySql_conn.close()

if__name__ == "__main__":

key_list = ['job_spider:items','jobs58:items','jobsganjispider']

fori inrange(3):

process_item(key_list[i])

可视化部分

可视化采用的flask+mysql+echarts

具体代码见我的GitHub,这里就不贴了。

贴一下几个图吧

web网站的整体图

搜索界面

学历要求

学历工资图

经验要求

词云图

完成

项目中可以扩展的部分很多,需要大家自己去写,不用再搭架子写简单的东西,web部分也可以扩展,包括页面以及echarts图,数据分析都可以继续扩展。

代码中有任何问题都可以留言,指正。一块学习!

代码会放在我GitHub上,关注后回复 ‘work’,即可获取

echarts mysql scrapy_抓取58job, 赶集job以及智联招聘,并使用数据分析生成echarts图...相关推荐

  1. python爬虫使用selenium爬取动态网页信息——以智联招聘网站为例

    python版本3.6 #导入两个模块 from selenium import webdriver import time from openpyxl import Workbook import ...

  2. python爬取智联招聘网

    思路 其实你在做完一些常规的反反爬措施之后基本能爬了,这里我关于IP我讲一下: 我主要是爬完一个职位之后睡眠1-3秒,随机选择 p=random.randint(1,3) time.sleep(p) ...

  3. Python利用Scrapy爬取智联招聘和前程无忧的招聘数据

    爬虫起因   前面两个星期,利用周末的时间尝试和了解了一下Python爬虫,紧接着就开始用Scrapy框架做了一些小的爬虫,不过,由于最近一段时间的迷茫,和处于对职业生涯的规划.以及对市场需求的分析, ...

  4. scrapy 智联 mysql_Python利用Scrapy爬取智联招聘和前程无忧的招聘数据

    爬虫起因 前面两个星期,利用周末的时间尝试和了解了一下Python爬虫,紧接着就开始用Scrapy框架做了一些小的爬虫,不过,由于最近一段时间的迷茫,和处于对职业生涯的规划.以及对市场需求的分析,我通 ...

  5. 手把手带你抓取智联招聘的“数据分析师”岗位!

    前言 很多网友在后台跟我留言,是否可以分享一些爬虫相关的文章,我便提供了我以前写过的爬虫文章的链接(如下链接所示),大家如果感兴趣的话也可以去看一看哦.在本文中,我将以智联招聘为例,分享一下如何抓取近 ...

  6. python爬虫招聘-Python爬虫抓取智联招聘(基础版)

    原标题:Python爬虫抓取智联招聘(基础版) 作者:C与Python实战 「若你有原创文章想与大家分享,欢迎投稿.」 对于每个上班族来说,总要经历几次换工作,如何在网上挑到心仪的工作?如何提前为心仪 ...

  7. Python爬虫项目:抓取智联招聘信息

    来自https://mp.weixin.qq.com/s/0SzLGqv2p0-IWSN3r8bOHA ''' Python爬虫之五:抓取智联招聘基础版 该文件运行后会产生一个代码,保存在这个Pyth ...

  8. 用python抓取智联招聘信息并存入excel

    用python抓取智联招聘信息并存入excel tags:python 智联招聘导出excel 引言:前一阵子是人们俗称的金三银四,跳槽的小朋友很多,我觉得每个人都应该给自己做一下规划,根据自己的进步 ...

  9. Python | 爬虫抓取智联招聘(基础版)

    对于每个上班族来说,总要经历几次换工作,如何在网上挑到心仪的工作?如何提前为心仪工作的面试做准备?今天我们来抓取智联招聘的招聘信息,助你换工作成功! 运行平台: Windows   Python版本: ...

最新文章

  1. 超级计算机 红皇后,阿丽塔诺瓦不是最大反派 幕后大boss超级计算机黑化AI
  2. 全球领先的数据库!我用它直接让公司项目的性能提升了一半~
  3. ubuntu 14.04 LTS(64bit)源配置
  4. python3 协程 写法_理解Python的协程(Coroutine)
  5. Atom飞行手册翻译: 3.9 从Textmate中转换
  6. 十分钟释疑Oracle中“小表超慢”之谜(SQL调优/SQL优化)
  7. 低压抽屉柜常见故障处理方法_传真机常见故障如何处理 传真机常见故障处理方法【详解】...
  8. C++ 将模板申明为友元
  9. mysql创建一张日期表_MySQL创建一张日期表
  10. mame新版ROM下载网站推荐
  11. 最新常用会计科目表及详细解释
  12. 运算放大器节点电压方程_比例运算放大器电路
  13. 2022最新谷歌商店上架流程_google play 上架流程
  14. 三年半 Java 后端鹅厂面试经历
  15. HTML-day02会员登录案例
  16. 多项式除以多项式例题讲解_多项式乘以多项式训练题.doc
  17. Docker之介绍与安装
  18. Unity程序框架总结归置系列(4)——mono模块
  19. mysql的interval()引出的
  20. php导出excel表格 打不开,phpspreadsheet 导出的EXCEL 文件打不开

热门文章

  1. NLP研究方向的「情感分析领域」的简单调研
  2. 去除冗余token的DETR效果怎么样?NUS颜水成团队提出端到端的PnP-DETR结构
  3. 语音社交产品,安全合规“防坑指南”!
  4. 杭州「增长黑客」集结令!曲卉老师想约你来网易聊一聊
  5. PaaS服务之路漫谈(一)
  6. Node.js 启动调试方式
  7. SEO算法:如何通过PageRank算法判断SEO排序结果
  8. gerrit的git配置流程
  9. php使用fputcsv进行大数据的导出
  10. 路由及iptables学习笔记