最新 Python3 爬取前程无忧招聘网 mysql和excel 保存数据

本文主要是介绍最新 Python3 爬取前程无忧招聘网 mysql和excel 保存数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Python 爬虫目录
        
        1、最新 Python3 爬取前程无忧招聘网 lxml+xpath
        2、Python3 Mysql保存爬取的数据 正则
        3、Python3 用requests 库 和 bs4 库 最新爬豆瓣电影Top250
        4、Python Scrapy 爬取 前程无忧招聘网
        5、Python3 爬取房价 采用lxml+xpath
        6、持续更新…
        
        
        

本文更新于2021年06月01日

本文爬取网站为https://search.51job.com/list/000000,000000,0000,00,9,99,%25E6%2595%25B0%25E6%258D%25AE%25E5%2588%2586%25E6%259E%2590,2,1.html?

本文选用的是lxml模块,xpath语法提取数据

推荐谷歌用户一个可以帮助xpath调试的插件
Xpath Helper
在这里插入图片描述

1、进行分析网站

在这里插入图片描述

**

要爬取的职位名、公司名、工作地点、薪资的信息都在class="e"里

**
在这里插入图片描述

分析完就可以用xpath 语法进行调试了
完整代码如下:

from selenium import webdriver
from lxml import etree
import time
import pymysql# 设置不启动浏览器
option = webdriver.ChromeOptions()
option.add_argument('headless')def get_url(url):browser = webdriver.Chrome(options=option)browser.get(url)html_text = browser.page_source# browser.quit()# time.sleep(5)return html_textdef GetData(url):""":param url: 目标网址:return:"""html_text = get_url(url)dom = etree.HTML(html_text)dom_list = dom.xpath('//div[@class="j_result"]/div[@class="in"]/div[@class="leftbox"]//div[@class="j_joblist"]//div[@class="e"]')Job_list = []for t in dom_list:# 1.岗位名称job_name = t.xpath('.//a[@class="el"]//span[@class="jname at"]/text()')[0]# print(job_name)  for test# 2.发布时间release_time = t.xpath('.//a[@class="el"]//span[@class="time"]/text()')[0]# 3.工作地点address = t.xpath('.//a[@class="el"]//span[@class="d at"]/text()')[0]# 4.工资salary_mid = t.xpath('.//a[@class="el"]//span[@class="sal"]')salary = [i.text for i in salary_mid][0]  # 列表解析# 5.公司名称company_name = t.xpath('.//div[@class="er"]//a[@class="cname at"]/text()')[0]# 6.公司类型和规模company_type_size = t.xpath('.//div[@class="er"]//p[@class="dc at"]/text()')[0]# 7.行业indusrty = t.xpath('..//div[@class="er"]//p[@class="int at"]/text()')[0]JobInfo = {'job_name': job_name,'address': address,'salary': salary,'company_name': company_name,'company_type_size': company_type_size,'industry': indusrty,'release_time': release_time}Job_list.append(JobInfo)return Job_listdef SaveSql(data):""":param data: 数据:return:"""# 创建连接db = pymysql.Connect(host='localhost',  # mysql服务器地址port=3306,  # mysql服务器端口号user='root',  # 用户名passwd='123123',  # 密码db='save_data',  # 数据库名charset='utf8'  # 连接编码)# 创建游标cursor = db.cursor()# 使用预处理语句创建表cursor.execute("""create table if not exists Job_info(ID INT PRIMARY KEY AUTO_INCREMENT ,job_name VARCHAR(100) ,address VARCHAR (100),salary  VARCHAR (30),company_name VARCHAR (100) ,company_type_size VARCHAR (100),industry VARCHAR (50),release_time VARCHAR (30))""")for i in data:insert = "INSERT INTO Job_info(" \"job_name,address,salary,company_name,company_type_size,industry,release_time" \")values(%s,%s,'%s',%s,%s,%s,%s)" % (repr(i['job_name']), repr(i['address']), i['salary'], repr(i['company_name']),repr(i['company_type_size']), repr(i['industry']), repr(i['release_time']))try:# 执行sql语句cursor.execute(insert)# 执行sql语句db.commit()print("insert ok")except:# 发生错误时回滚db.rollback()db.commit()# 关闭数据库连接db.closeif __name__ == '__main__':for i in range(301, 451):print('开始存储第' + str(i) + '条数据中')url_pre = 'https://search.51job.com/list/000000,000000,0000,00,9,99,%25E6%2595%25B0%25E6%258D%25AE%25E5%2588%2586%25E6%259E%2590,2,'url_end = '.html?'url = url_pre + str(i) + url_endSaveSql(GetData(url))time.sleep(3)print('存储完成')

完成后效果

mysql 存储
在这里插入图片描述

Excel 存储(后续更新)
在这里插入图片描述

有不明白的地方欢迎提问

本文更新于2021年06月01日

这篇关于最新 Python3 爬取前程无忧招聘网 mysql和excel 保存数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/680400

相关文章

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

MySQL中查找重复值的实现

《MySQL中查找重复值的实现》查找重复值是一项常见需求,比如在数据清理、数据分析、数据质量检查等场景下,我们常常需要找出表中某列或多列的重复值,具有一定的参考价值,感兴趣的可以了解一下... 目录技术背景实现步骤方法一:使用GROUP BY和HAVING子句方法二:仅返回重复值方法三:返回完整记录方法四:

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满