拉勾网的语言与技术方向爬虫

来源:互联网 发布:一键装修淘宝店铺软件 编辑:程序博客网 时间:2024/06/05 20:52

拉勾网关于语言方向与技术方向的爬虫

1、工欲善其事必先利其器,工具的选择

       关于爬虫有很多工具可以使用,可以用urllib,也可以用requests,还可以使用scrapy框架,他们各有各的好处,我使用的是requests

2、对拉勾网的前端代码分析

       爬虫爬取的都是显示给客户的信息,所以要爬虫一定要对前端进行分析
       
      

      1、拉勾网中对于python进行搜索的url

      
         可以看出,搜索信息是在url中进行传递的,这就确定了我们爬取的url池,可以用占位符来指定我们需要爬取的内容
       

       2、拉勾网的信息是存在哪里的

         如果直接对url进行get操作,返回的html页面并没有招聘信息,所以是不能直接get网页然后用正则表达式进行匹配的,这时候就要用到chrome浏览器,用chrome浏览器打        开拉勾网,然后f12,看network下的XHR,进行一次翻页操作,可以看到拉勾网是使用ajax请求来传递数据的,传回来的是一个Json,这个Json中包含我们所需要的信息,所以      我们的目的就是要获得这个Json数据然后进行操作。
         

       

 3、构建请求

             爬虫是批量获取信息的工具,有两个重点,1是批量,2是获取信息,批量可以通过创建url池来达到,而获取信息,就是靠发送请求来获取。
             翻页操作是一个POST请求,构建一个POST请求就可以获得拉勾网。
             
             
             这个就是我的请求头,data可以从浏览器中获得,就可以发送ajax请求获得Json数据进行解析了。

4、异常处理

        拉勾只给用户显示20页的信息,但实际上如果对后续页进行ajax请求依然能返回数据,但不知道什么时候才结束,我观察到,结束以后返回的包依然是200,但是Json中有false,所以可以对返回的信息进行字符串切割,如果有false,就结束循环,进入下一个项目的爬取。


5、拉勾网的反爬手段

        拉勾网的反爬手段主要有两个
        1、规定时间内只能有规定次数的请求
              这个只能通过代理IP破,但我在西刺上爬取了几百个IP,验证以后没有一个能用的,所以只能放慢爬取速度了
        2、返回301重定向
              如果请求头中不包含referer,将会返回一个301重定向,重定向的目标还是这个url,会进入一个死循环。只要加了referer就可以了

6、最终结果

        爬取了python、PHP、Java、Html5、Go、C++、C#的招聘信息,并用excel做成了图表,可以根据图表选择学习的方向
        
        
原创粉丝点击