获取某厂招聘岗位信息

今天方向一个爬虫案例,爬取某厂招聘岗位信息数据,通过程序可以学习pymysql的使用,通过pycharm工具获取数据,并且导入mysql数据库中。

1 导入必要的包

import requests
import pymysql

2 主体代码


class Baidu(object):def __init__(self):self.db = pymysql.connect(host="127.0.0.1", user="root", password="88888888", db="test_db")self.cursor = self.db.cursor()self.url = 'https://talent.alibaba.com/position/search'self.headers = {'cookie': '自己的cookie','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/547.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/547.36'}self.params = {"_csrf": "09d5fe8f-08a2-4d3c-a43f"}def get_data(self, page):  # 获取地址和User-Agentdata = {"channel": "group_official_site","language": "zh","batchId": "","categories": "","deptCodes": [],"key": "","pageIndex": page,"pageSize": 19, "regions": "","subCategories": ""}response = requests.post(url=self.url, params=self.params, headers=self.headers, json=data)return response.json()def parse_data(self, response):# print(response)data_list = response["content"]['datas']for node in data_list:workLocations = ','.join(node['workLocations'])name = node['name']requirement = node['requirement']self.save_data(workLocations, name, requirement)def create_table(self):# 使用预处理语句创建表sql = '''CREATE TABLE IF NOT EXISTS ali_quarter_bill(id int primary key auto_increment not null,workLocations VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, requirement TEXT)'''try:self.cursor.execute(sql)print("CREATE TABLE SUCCESS.")except Exception as ex:print(f"CREATE TABLE FAILED,CASE:{ex}")def save_data(self, workLocations, name, requirement):# SQL 插入语句sql = 'INSERT INTO ali(id, workLocations, name, requirement) values(%s, %s, %s, %s)'# 执行 SQL 语句try:self.cursor.execute(sql, (0, workLocations, name, requirement))# 提交到数据库执行self.db.commit()print('数据插入成功...')except Exception as e:print(f'数据插入失败: {e}')# 如果发生错误就回滚self.db.rollback()def run(self):self.create_table()for i in range(1, 19):response = self.get_data(i)self.parse_data(response)# 关闭数据库连接self.db.close()
if __name__ == '__main__':baidu = Baidu()baidu.run()

结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/20146.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

deepseek R1基本原理解读与系列论文简介

文章目录 前言一、deepseek R1发展史二、deepseek R1简介1、R1简介2、R1成功秘诀3、R1推理模型概念4、R1自我进化与顿悟时刻特点5、不同处理方法比较6、训练流程7、训练阶段8、R1的MLA结构9、R1的MOE结构10、R1的MTP结构11、R1的GRPO结构三、DeepSeek LLM Scaling Open-Source …

数据分析--数据清洗

一、数据清洗的重要性:数据质量决定分析成败 1.1 真实案例警示 电商平台事故:2019年某电商大促期间,因价格数据未清洗导致错误标价,产生3000万元损失医疗数据分析:未清洗的异常血压值(如300mmHg&#xff…

【进阶】微服务

微服务架构 服务架构演变过程 单体应用架构 所有的功能都在一个项目中(现在使用的就是单体架构) 集群架构 把一个单体项目部署多个,使用Nginx进行负载均衡,根据负载均衡策略调用后端服务 不好的地方:有的服务访问…

浏览器开发者工具(F12)查看请求的响应体内容显示”无法加载响应数据: No resource with given identifier found“

背景 复习在 SSM(Spring Spring MVC MyBatis)框架中,点击登录请求后返回 JSON 格式的数据,出现只有登录失败的请求才有响应值,比如: {success: false, message: “没有此用户”, code: 400} 而成功的请求…

Mybatisplus自定义sql

文章目录 引言流程 引言 mybatisplus最擅长的将where里面的语句给简便化,而不用我们自己写标签来实现条件查询 但是很多公司规范我们将sql写在mapper层中,不能写在service中 而且一些语句查询的不同select count(*) xxx from xxx 也难以用mp来实现 如何…

级联选择器多选动态加载

一.级联展示 注:因为级联选择器这里是动态加载,因此如果上来选中一级就需要加载出后面三级的全部数据,依然会很卡,因此,和产品协商把一二级多选框去掉了,这样也避免了你选择一级不能实现子级被全部选中的问…

MySQL-事务隔离级别

事务有四大特性(ACID):原子性,一致性,隔离性和持久性。隔离性一般在事务并发的时候需要保证事务的隔离性,事务并发会出现很多问题,包括脏写,脏读,不可重复读,…

【带你 langchain 双排系列教程】2. langchain 提示词工程应用实践

一、简介 提示词工程在利用 LangChain 与大型语言模型交互中起着关键作用,通过精心设计提示词,可以引导模型生成更准确、更符合预期的输出,从而提升应用的效果和用户体验。 二、基本提示词调用 可以使用 LangChain 提供的 PromptTemplate 来…

git删除本地分支

一、命令方式 1、查看本地分支 git branch 2、切换到一个不删除的分支 git checkout branch_name 3、强制删除分支 git branch -D local_branch_name 二、工具方式 1、选择"Browse references",右键"Delete branch"

[Computer Vision]实验四:相机标定

目录 一、实验内容 二、实验过程及结果 2.1 实验代码 2.2 实验结果及分析 一、实验内容 了解针孔照相机的相关知识,实现相机标定。(可使用提供的棋盘格或自行打印) 可视化棋盘格关键点、匹配点数(可加ransac)输出…

C++笔记之标准库中用于处理迭代器的`std::advance`和`std::distance`

C++笔记之标准库中用于处理迭代器的std::advance和std::distance code review! 文章目录 C++笔记之标准库中用于处理迭代器的`std::advance`和`std::distance`一.`std::advance`函数原型参数说明使用场景示例代码示例 1:移动 `std::vector` 的随机访问迭代器示例 2:移动 `st…

【C++】36.C++IO流

文章目录 1. C语言的输入与输出2. 流是什么3. CIO流3.1 C标准IO流3.2 C文件IO流 4. stringstream的简单介绍 1. C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取数据,并将值存放在变量中。pri…

【抽象代数】1.2. 半群与群

群的定义 群非空集合二元运算性质 定义1. 设 为一个非空集合,上有二元运算,满足结合律,则称或为一个半群。 定义2. 设 为半群,若元素 满足 ,则称 为 的左幺元(右幺元:)&#…

基于ollama+deepseek R1 1.5B本地部署语音交互助手(原创、附代码)

目录 现有的一些功能记录一些过程中遇到的问题安装llama_cpp 1、安装ollama和部署deepseek R12、使用本地部署的deepseek R1模型3、语音识别4、代码实现运行演示 现有的一些功能 1、正常与人沟通,但受限于电脑性能,还存在一定延迟; 2、可以根…

惠普HP Color LaserJet CP1215彩色激光打印机套色不准及套色错位的解决方法

一台惠普HP Color LaserJet CP1215彩色激光打印机出现故障,转印带断裂,于是更换了转印地,当更换完成测试的时候发现这台惠普HP Color LaserJet CP1215彩色激光打印机打印的颜色比较淡且颜色有错位的问题,继续检查机器之后&#xf…

开放签电子签章工具版 2.0 正式发布,构建全场景电子签约能力、满足复杂的签章管理场景

根据近半年开源用户和市场需求反馈,开放签团队推出电子签章工具版2.0版本,主要解决复杂的签约流程集成和电子印章授权管理场景。以API接口对外提供服务和配置一套可视化后台管理系统,可与业务系统无缝集成,用户使用起来毫无“违和…

docker 安装 Rabbitmq 详解

在平常的开发工作中,我们经常会使用到 rabbitmq,rabbitmq 主要可以进行应用解耦、异步通信、流量削峰、负载均衡、消息持久化、死信队列等。比如商城系统,下单后,通过消息队列通知库存系统、积分系统、物流系统等。发送短信时通过…

零基础学yolo系列

1.目标检测算法分类 基于深度学习的主流目标检测算法根据有无候选框生成阶段,分为双阶段目标检 测算法和单阶段目标检测算法两类 双阶段检测模型 将检测问题划分为两个阶段,首先产生候选区域,然后对候选区域分类并对目标位置进行精修&#x…

本智慧监考系统

本智慧监考系统共分为4个部分,分别为:展示层、业务层、算法层和数据库。 本系统的展示层基于Vue.js框架和Ant Design Vue UI框架编写。用户通过浏览器访问前端界面来实现与系统的交互。 业务层是基于SpringBoot框架编写的Java后台服务器。该层负责本系…

从开发到部署:EasyRTC嵌入式视频通话SDK如何简化实时音视频通信的集成与应用

嵌入式设备和视频综合管理平台均支持B/S架构。在B/S架构下,传统的视频观看方式依赖于微软的OCX控件,然而OCX控件的使用正面临越来越多的挑战: 首先,用户需要安装浏览器插件、调整浏览器安全级别,并允许ActiveX控件弹出…