ITPub博客

首页 > 数据库 > > 爬取拉钩网入库MongoDB

爬取拉钩网入库MongoDB

作者:浪花小雨滴 时间:2020-05-12 11:51:13 0 删除 编辑

职场上那种技能最吃香呢?面试时那种技能可以使你顺利进入阿里,腾讯这样的大厂呢?今天跟我去一探究竟。

首先我们进入拉勾网

拉勾网-专业的互联网招聘平台

在搜索框中输入'Python'我们首先来搜索一下Python相关的职位

首先F12开打开发者模式,然后在Network点击XHR找到浏览器中与开发者模式种对应的消息

找到对应的信息之后然后在Headers中找到我们所要爬取信息的网站的地址

在这里我们可以发现浏览器的访问方式是post

post携带的参数如下

针对于post请求,我们首先来做一个简单的了解

快速上手 - Requests 2.18.1 文档2.python-requests.org

首先我们打开文档链接,ctrl+F搜索POST,然后找到post请求的用法

可以发现,post请求相对于get请求多了一个payload的参数。里面的值是来自于Form Data里面的。

找到规律之后帮我们就开始编码

编码完成之后test发现如下异常

出现此错误的原因基本上是网站采取了反扒措施, 解决方法是加入以下几个参数用来模拟浏览器的访问。

首先我们在Request headers 中找到cookie,UserAgent和Refer并将它们粘贴到代码里面request请求中的headers参数中。

可以看到,加入了Cookie、UserAgent和Refer之后我们要爬取的数据就可以显示出来了。

然后我们找到职位result与它父级之间的关系

然后通过代码展示

然后我们将得到的数据存入MongoDB数据库。在这里多说两句关于MongoDB数据库的。

MongoDB 是非关系型数据库(NoSQL)的代表之一,它具有高灵活、可水平扩展、高可用等优秀特性,并且它提供了强大又丰富的查询语句使开发者能够随心所欲地操控数据。这些也正是它受到广大开发者和企业青睐的原因。有兴趣的小伙伴可以点击下面链接去了解一下MongoDb

The most popular database for modern apps图标

关于NoSQL在多说两句

NoSQL 泛指非关系型数据库,该词是关系型数据库(即 SQL)的相对称呼。我们常用的关系型数据库无法满足 WEB2.0 时代的需求,在实际应用中暴露了很多难以克服的问题。NoSQL 的产生就是为了解决例如海量数据的存储、弹性可伸缩和灵活性等方面的挑战。

还有关于MongoDB的详细安装教程我已经放到了公众号‘神秘程序员007’,大家直接在公众号里回复'MongoDB'获取软件和详细安装教程。

然后我们将爬取到的数据放入到MongoDB数据库中。点击F4-view。

可以看到我们已经获取到了当前页面的所有数据。大家我们的目标不止于此,我们要获取的是所有Python相关的职业。

所以现在的核心就是如何爬取多页数据。

首先通过开发者模式来查看浏览器

对比可以发现,当我们点击第二页的时候,它的 pn = 2;

当我们点击第四页的时候,它的 pn = 4;

不难得出以下结论:pn控制的就是它的当前页数。所以我们将这个pn定义为一个变量参与到页数的循环中去,这样就可以爬取任意我们想要的页面的数据

然后查看我们的数据库中是否写入了数据

在这里基本上已经写完了,但是这个只是咱们搜索的满足'python'职位的请求,如果想搜索其他的职位呢?

我么会首先对浏览器的开发者模式进行研究,发现如果用户输入的'python',这里的kd = ‘python’,如果是'PHP',这里显示的就是'PHP'。据此我们可以断定。kd就是控制用户职位的搜索的。

这里我们只需对代码做简单的改动,如图

然后进入数据库中查看是否获取到'PHP'职位相关的信息。

好了,大功告成!


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3141051/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    39960