当前位置: 首页>前端>正文

学习笔记91 爬虫项目(二)5-23

前面的操作其实都只爬下了职业的类别数据,但仅仅这些是不能做什么有效分析的。这里开始爬更多的信息,前面有些麻烦是因为数据是前端渲染的,罢了不多解释了

1 首先分析URL规则

目的:找打关键词和页码在url中的位置

在打开的51中搜索python关键字,并做页面切换。

python的第一页:

https://search.51job.com/list/000000,000000,0000,00,9,99,python,2,1.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare=

python的第二页

https://search.51job.com/list/000000,000000,0000,00,9,99,python,2,2.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare=

不难看出第一行末尾就是关键词和页码的所在位置,但有一点要注意,python是英文,若是输入中文,会进行编码。

目的:学会url对汉字的编码和解码

所有网站都会对中文编码,再拼凑出url网址

学习笔记91 爬虫项目(二)5-23,第1张

2 指定数据提取策略

目的:明白前端渲染和后端渲染

后端渲染:浏览器未修改HTML源码

前端渲染:浏览器得到HTML源码后执行了js代码,填充了数据;一般与json配置使用

目的:通过正则来获取1级界面下的招聘信息(代码出问题了,视频现在看不了,直接按讲义来说)

学习笔记91 爬虫项目(二)5-23,第2张

这一部分就是导包加url的编码

学习笔记91 爬虫项目(二)5-23,第3张

在获取json这里,代码出现问题

学习笔记91 爬虫项目(二)5-23,第4张

至此,一级页面获取完毕。

目的:爬虫请求的随机user_agent

学习笔记91 爬虫项目(二)5-23,第5张

目的:二级页面的获取

学习笔记91 爬虫项目(二)5-23,第6张

这里使用的还是蛮简单的,单纯学xpath可以看一下别人的博客。

目的:完成爬虫的雏形,并且将数据储存到mongoDB中去

学习笔记91 爬虫项目(二)5-23,第7张
学习笔记91 爬虫项目(二)5-23,第8张

目的:了解mongoDB数据库

在使用阶层类数据时,优先使用mongodb数据库,其可视化工具为robo3t。

目的:项目解耦与系统稳定性,针对目前的代码缺陷提出解决思路。第一是项目结构未分离,不利于后期维护;二是未考虑系统异常的风险。

改进思路:1单独配置文件setting,2单独的管道函数做数据储存,3发送请求不再考虑Header等参数,引入下载中间件,4当某页面出现异常数据,可选择记录异常数据,不影响整体爬虫运行


https://www.xamrdz.com/web/25g1904390.html

相关文章: