版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实现某招聘网站的数据爬取并存储目录01任务1爬取岗位信息并存储为文本文件02任务2:爬取薪资信息并存储到MySQL03任务3:爬取工作地点并存储到MongoDB任务一
爬取岗位信息并存储为文本文件
2、json文件存储3、csv文件存储1、txt文件的存储任务目标任务一
爬取岗位信息并存储为文本文件1.1TXT文本文件存储—操作简单,但不利于检索方法一:open方法(省去requests异常处理部分)任务一
爬取岗位信息并存储为文本文件方法二:withas语法(不需要再调用close方法)常用文件打开方式任务一
爬取岗位信息并存储为文本文件1.2JSON文本文件存储JSON—全称为JavaScriptObjectNotation,也就是JavaScript对象标记,它通过对象和数组的组合来表示数据,构造简洁但是结构化程度非常高,是一种轻量级的数据交换格式。实例:将字符串转为JSON对象运行结果?列表(可操作的数据结构)JSON形式的字符串双引号任务一
爬取岗位信息并存储为文本文件JSON读取
Python为我们提供了简单易用的JSON库来实现JSON文件的读写操作,我们可以调用JSON库的loads方法将JSON文本字符串转为JSON对象,可以通过dumps()方法将JSON对象转为文本字符串。
注:JSON字符串的表示需要用双引号,否则loads方法会解析失败任务一
爬取岗位信息并存储为文本文件JSON输出调用dumps方法将JSON对象转化为字符串(如果想保存JSON的格式,可以再加一个参数indent,代表缩进字符个数,若JSON对象中包含中文字符,可指定参数ensure_ascii为False)任务一
爬取岗位信息并存储为文本文件1.3CSV文本文件存储全称为Comma-SeparatedValues,中文可以叫作逗号分隔值或字符分隔值,其文件以纯文本形式存储表格数据,它是一个字符序列,可以由任意数目的记录组成,记录间以某种换行符分隔。每条记录由字段组成(结构化表的纯文本形式)实例:CSV文件写入写入的文本默认以逗号分隔,调用一次writerow方法即可写入一行数据任务一
爬取岗位信息并存储为文本文件实例:delimiter参数(修改列与列之间的分隔符)任务一
爬取岗位信息并存储为文本文件实例:写入多行(调用writerows方法同时写入多行)注:此时参数需要为二维列表任务一
爬取岗位信息并存储为文本文件实例:写入字典(将字典写入CSV文件中)任务一
爬取岗位信息并存储为文本文件实例:追加写入(将open函数的第二个参数改成a)注:
如果要写入中文内容的话,可能会遇到字符编码的问题,此时需要给open参数指定编码格式任务一
爬取岗位信息并存储为文本文件实例:to_csv方法写入文件(需安装pandas库)任务一
爬取岗位信息并存储为文本文件实例:使用csv库来读取CSV文件注:如果CSV文件中包含中文,还需要指定文件编码任务一
爬取岗位信息并存储为文本文件实例:使用read_csv库方法读取任务实施爬取智联招聘网站中“数据采集”分类中的岗位名称,并将其保存为CSV文本文件步骤1:分析网站结构任务实施步骤2:确定目标数据项任务实施步骤3:使用BeautifulSoup获取相应数据并存储为CSV文件任务小结通过学习了解文本文件的存储及读取方法。掌握存储为不同类型文本文件的方法。能够遵守法律法规,合法有序地爬取数据。任务二
爬取薪资信息并存储到MySQL
3、能实现对MySQL数据库中的数据进行增删改查2、掌握pymysql库的基本使用1、会安装Pymysql库任务目标任务二
爬取薪资信息并存储到MySQL2.1准备工作-pymysql库安装在命令提示符界面输入pipinstallpymysql进行库的安装。任务二
爬取薪资信息并存储到MySQL2.2连接并创建数据库假定:当前的MySQL运行在本地,用户名为root,密码123456,运行端口为3306步骤:①通过pymysql的connect方法声明一个MySQL连接对象db②连接成功后,需要再调用cursor方法获得MySQL的操作游标(利用游标来执行SQL语句)
③调用execute方法执行
④创建数据库
⑤连接并创建成功后进行验证任务二
爬取薪资信息并存储到MySQL任务二
爬取薪资信息并存储到MySQL2.3创建表—执行创建表的SQL语句
创建一个数据表job:注:在爬虫爬取的过程中,我们会根据爬取结果设计特定的字段任务二
爬取薪资信息并存储到MySQL任务二
爬取薪资信息并存储到MySQL2.4插入数据—通过字典插入(构造动态的SQL语句)构造插入的字段:将data的键名拿过来并用逗号隔开构造多个%s当作占位符(长度未1的数组用乘法扩充)任务二
爬取薪资信息并存储到MySQL利用字符串的format方法将表名、字段名和占位符构造出来需要使用commit方法提交才能生效任务二
爬取薪资信息并存储到MySQL任务二
爬取薪资信息并存储到MySQL2.5更新数据—去重的方法(如果数据存在,就更新,不存在就插入)如果主键已经存在,就执行更新操作任务二
爬取薪资信息并存储到MySQL任务二
爬取薪资信息并存储到MySQL2.6删除数据—DELETE语句(需要指定要删除的目标表名和删除条件)要删除的表名删除条件任务二
爬取薪资信息并存储到MySQL任务二
爬取薪资信息并存储到MySQL2.7查询数据—SELECT语句不再需要commit方法,调用cursor的rowcount属性获取查询结果的条数调用fetchone方法,获取结果的第一条数据(结果:元组)调用fetchall方法,得到结果的所有数据任务二
爬取薪资信息并存储到MySQL任务二
爬取薪资信息并存储到MySQL思考:
从刚才的实例运行结果可以看到,调用fetchall方法,得到了9条数据而不是10条,为什么?原因:
它的内部实现有一个偏移指针用来指向查询结果,最开始偏移指针指向第一条数据,取一次之后,指针偏移到下一条数据,这样再取的话,就会取到下一条数据了。我们最初调用了一次fetchone方法,这样结果的偏移指针就指向下一条数据,fetchall方法返回的是偏移指针指向的数据一直到结束的所有数据,所以该方法获取的结果就只剩9个了注:fetchall会将结果以元组形式全部返回,如果数据量很大,那么占用的开销会非常高推荐:用while循环加fetchone方法来获取所有数据任务实施爬取智联招聘网站中“数据采集”分类中的薪资信息,并将其存储至MySQL数据库中任务小结通过学习了解MySQL中的数据操作。掌握如何将数据在MySQL中增删改查的方法。能够遵守法律法规,合法有序地爬取数据。任务三
爬取工作地点并存储到MongoDB
3、能实现对MySQL数据库中的数据进行增删改查2、掌握pymysql库的基本使用1、学会安装pymongo库任务目标任务三
爬取工作地点并存储到MongoDB3.1准备工作-pymongo库安装在命令提示符界面输入
pipinstallpymongo进行库的安装。任务三
爬取工作地点并存储到MongoDB3.2连接MongoDB
假定:当前的MongoDB运行在本地,运行端口为27017
使用PyMongo库里面的MongoClient方法,传入IP以及端口任务三
爬取工作地点并存储到MongoDB3.3指定数据库3.4指定集合(声明了一个集合对象)任务三
爬取工作地点并存储到MongoDB3.5插入数据—以字典形式表示
在MongoDB中,每条数据其实都有一个_id属性来唯一标识。如没有显式指明该属性,MongoDB会自动产生一个ObjectId类型的_id属性。实际上,在PyMongo3.x版本中,官方已经不推荐使用insert()方法了。官方推荐使用insert_one()和insert_many()方法来分别插入单条记录和多条记录。插入单条数据insert_one()任务三
爬取工作地点并存储到MongoDB任务三
爬取工作地点并存储到MongoDB
插入多条数据—insert_many()列表任务三
爬取工作地点并存储到MongoDB3.6查询数据—利用find_one()或find()方法进行查询find_one():返回单个结果find():返回生成器对象,通过遍历能获取所有结果(每个结果都是字典类型)任务三
爬取工作地点并存储到MongoDB
查询条件
1)比较查询—比较符号
2)正则匹配查询—功能符号任务三
爬取工作地点并存储到MongoDB3.7排序—直接调用sort()方法,并在其中传入排序的字段及升降序标志即可3.8偏移—某些情况下,只取某几个元素,利用skip()方法偏移几个位置任务三
爬取工作地点并存储到MongoDB3.9更新—使用update()方法,指定更新条件和更新后的数据即可
这里也分为update_one()方法和update_many()方法,用法更加严格,它们的第二个参数需要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中式装修施工方案(3篇)
- 产品公司营销方案(3篇)
- 体育情感营销方案(3篇)
- 南水北调的施工方案(3篇)
- 台湾凉亭施工方案(3篇)
- 商场活动运营策划方案(3篇)
- 土拱施工方案(3篇)
- 基础管网施工方案(3篇)
- 孔子周游营销方案(3篇)
- 宴会开业营销方案(3篇)
- 2025年税务局信息技术专员招聘考试题库
- 北师大版七年级数学下册-第一章-名校检测题【含答案】
- 【《汽车排气系统三维建模及有限元仿真分析》17000字(论文)】
- 急危重症快速识别与急救护理
- 2026年新高考数学专题复习 103.马尔科夫链讲义
- 初中数学备课教案模板
- 浙江建设监理管理办法
- 运输公司废物管理办法
- 水库安全度汛培训课件
- 2025年上海高二学业水平合格性考试信息技术试卷(含答案详解)
- 数字媒体艺术设计毕业设计
评论
0/150
提交评论