博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 爬取应届生求职网中的求职信息并存入MySQL数据库中并词云!
阅读量:3960 次
发布时间:2019-05-24

本文共 3184 字,大约阅读时间需要 10 分钟。

python 爬取应届生求职网中的求职信息并存入MySQL数据库中

目录

简介

看到了里面发布了众多的全国各省各市的求职信息,可以看到各个公司的岗位需求,以及招聘时间,地区等等,感觉挺丰富的,然后顺便练一下爬虫,来获取哈信息的,不是去来求职的哈哈,当然里面的求职信息也是值得我们关注的。

此次爬取的信息
在这里插入图片描述

1,python连接数据库创建表

将数据存储到MySQL里面,当然要首先要在数据库创建一张表的,然后表的结构根据自己的数据创建。

# -*- coding: utf-8 -*-#@Project filename:PythonDemo  SpiderJob.py#@IDE   :IntelliJ IDEA#@Author :ganxiang#@Date   :2020/05/07 0007 10:18#所需要的库import requestsimport parselimport timeimport pymysqlconnection =pymysql.connect(host='127.0.0.1',                            port=3306,                            user='root',                            password='1234567',                            database='spider',                            charset='utf8')def create_table():    mycursor =connection.cursor()    #1,表存在则删除    mycursor.execute("DROP TABLE IF EXISTS job")    # 2,创建表    sql = """        create table job(        num int(11) NOT NULL AUTO_INCREMENT primary key,        company varchar(255) DEFAULT NULL,        positions varchar(255) DEFAULT NULL,        region varchar(255) DEFAULT NULL,        data_source  varchar(255) DEFAULT NULL,        dates  varchar(255) DEFAULT NULL        )"""    try:        mycursor.execute(sql)        connection.commit()        print("创建表成功~")    except Exception as e:        print("创建失败~:{}".format(e))    finally:        mycursor.close()        # connection.close() #创建表完成关闭连接,这里后面还用到就将其注释掉,如果只用来创建表创建完成可以开启关闭连接

2,获取网站的数据

这里数据直接在HTML中的静态的(这里的静态只针对某一时刻静态,网站是隔一段时间将自己求职信息更新),我们直接提取就行,我用的parsel库的css选择器的方法,当然可以选择适合自己的提取网页元素方法。

def parse():    headers = {
'User-Agent':"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0" } url ="http://www.yingjiesheng.com/guizhoujob/index.html" # session =requests.session() res =requests.get(url,headers=headers) # print(res.content.decode(encoding="gbk")) context =res.content.decode(encoding="gbk") sel =parsel.Selector(context) company=sel.css('tr.jobli td:nth-child(1) a::text').getall() # print(company) position=sel.css('tr.jobli td:nth-child(2) a::text').getall() # print(position) region=sel.css('tr.jobli td:nth-child(3) span::text').getall() source=sel.css('tr.jobli td:nth-child(4) span::text').getall() date=sel.css('tr.jobli td:nth-child(5) span::text').getall() #将数据以字段形式返回 data ={
'company':company, 'position':position, 'region':region, 'source':source, 'date':date } return data

3,插入数据到MySQL中

这里我用一个循环将数据一条一条的插入到我们的数据库中

def run_insert_data():    t1=time.time()    text =parse()    mycursor =connection.cursor()    for i in range(0,73):        sql = 'INSERT INTO job(company,positions,region,data_source,dates)VALUES ("%s","%s","%s","%s","%s")'%\              (str(text['company'][i]),str(text['position'][i]),str(text['region'][i]),str(text['source'][i]),str(text['date'][i]))        mycursor.execute(sql)        connection.commit()    mycursor.close()    connection.close()    t2=time.time()    print("插入数据完成,用时:",t2-t1)

4,main函数

if __name__ =='__main__':    create_table()    time.sleep(3)#等待3秒后进行数据的插入    run_insert_data()

5,插入数据成功展示

在这里插入图片描述

数据库展示
在这里插入图片描述

6,数据词云图

画词云图这里展示图片就行了,之前有一片博客有讲解

6.1 招聘公司词云图->将招聘公司词云图,可以了解到那些公司需要的招聘人员较多
在这里插入图片描述
6.2 招聘岗位词云图
在这里插入图片描述
6.3 网站的数据来源
在这里插入图片描述
看到这儿了,点赞再走呗~

转载地址:http://xeqzi.baihongyu.com/

你可能感兴趣的文章
我的工作日志5
查看>>
aspx上传、预览图片
查看>>
我的工作日志6
查看>>
我的软件工程之路(五)—四个月总结
查看>>
从入职到离职的收获——ICT四个月
查看>>
项目中用到的一个导入Excel的方法
查看>>
项目中一个用于导出word的方法
查看>>
项目中用到小技术点
查看>>
管理数据库连接不得不注意的地方
查看>>
KS系统总结
查看>>
测试Jsp 静态包含和动态包含
查看>>
简析几种常用的Web监听
查看>>
Web应用过滤器Fileter
查看>>
代理模式(Proxy)
查看>>
采用动态代理对事务进行封装
查看>>
采用ThreadLocal维护Connection
查看>>
测试JSTL表达式
查看>>
一口一口吃掉Struts(六)——动态ActionForm
查看>>
一口一口吃掉struts(七)——ActionForward知多少
查看>>
浅析Hibernate映射(二)——关系映射(3)
查看>>