昨天,跟着b站的教程,终于成功爬取了豆瓣top250电影。
而实际上,作为这个教程来说,这才只是踏上月球的一小步而已。
这个教程一共是41集,我只是学到了25集。
因为这个教程是成都工业大学2016级数字媒体专业实训课程,所以除了爬虫内容,数据可视化也是很重要的部分。
我粗略看了一下,26、27集是讲如何将数据保存到数据库,28集之后都是讲数据可视化的内容。
目前对于我来说,可视化我还没觉得有啥用,所以也就不学了。
毕竟,40岁老男人的时间也是蛮宝贵,有很多事情需要做的。
课程的最后,是老师给学生们留的作业及讲解。
这个项目我觉得倒是可以跟着学习一下。
项目名称:51job招聘网数据爬取分析
项目目标:对搜索出的信息进行地域、薪资、工作经验、学历、职责与要求等方面的数据分析。
基本功能:使用爬虫爬取51job数据至少1000条,并保存到数据库中。
制作流程:之前爬豆瓣的四个步骤是:准备工作、获取数据、解析内容、保存数据。那时候毕竟是刚接触爬虫。
这里的步骤改为了爬取数据、数据保存、搭建框架、制作图标。
作为一个理智的成年人,这四个步骤我只选择前两个。
之前爬取豆瓣的时候,主要是爬取豆瓣首页内容,然后进行分析。
而前程无忧这个网页的首页对我们毫无意义,我们关心的是某个岗位的具体信息。
在搜索框岗位输入 Python,地点设为天津,出来了236个搜索结果。
吐槽一下,课程里老师输入的地点是成都,一下子搜出1200多个(我也搜了下,是1500多个,更多),而天津Python岗位竟然才有200多需求。
这一个是直辖市,一个是西南省会,差距咋就这么大呢!
先分析下这个网址。
首先,网址中 ? 后面的部分只是一些辅助信息,都可以删掉。
然后网址中也有 Python 这个词,可见网址跟搜索内容是有关联的。
尝试翻几次页可知,Python 后面的数字 2.1与翻的页是对应的,具体对应关系是2.1为第一页,2.2为第二页,2.3为第三页,以此类推。
最后,通过变换几次要搜索的地点可以确定,list 后面的数字是定位城市用的,050000表示天津,010000表示北京,090200表示成都。
将之前爬豆瓣的部分代码直接复制粘贴过来并进行相应改造。
然而运行报错了。
问题出在第28行。
PyCharm 傲娇的说:这个 utf-8 ,我解析不了。
这个没用的家伙!
返回51job网站,查看网页源代码。
原来如此,人家 charset 写着呢:gbk,怪不得utf-8 搞不定它呢。
那咱就赶紧改吧。
嘿嘿,爬取成功!