python项目(一)——爬虫爬取拉勾网职位信息

一.目标

爬取拉勾网指定城市的指定职位的一定数据。

二.网站解析

1.url解析
以在拉勾网寻找linux工程师工作为例:
在这里插入图片描述
网址是
https://www.lagou.com/jobs/list_linux?labelWords=&fromSearch=true&suginput=
但是详细分析之后可以发现?后面的参数去除也可以得到相应的html,
即 https://www.lagou.com/jobs/list_linux?这个网址也是可以得到想应的网站的
在这里插入图片描述
2.分析返回的数据类型是html格式还是json格式
打开chrome的开发者工具,检查网站的详细信息。
在这里插入图片描述
可以看到xhr中有一个positionAjax的json文件,点开preview查看里面的内容,发现了有我们需要的职位信息:
在这里插入图片描述
那也就是说这个页面的职位信息应该是通过Ajax请求然后服务器返回的json数据通过js渲染而成的。我对于Ajax请求的理解是:传统的网页更新时,需要刷新页面,使用Ajax后,通过js文件向服务器发送请求,然后得到的数据动态的渲染更新页面。(如果后面发现理解错了,会及时来这里更新)
3.分析headers,拿到json数据
点击headers,可以看到这是一个post类型的请求,表单数据form data可以下拉到最下面得到,查看request url,可以试着再另外的标签页中打开url,会发现和往常的json文件不同,这个链接打开后得不到我们想要的数据,并且会返回一个您的访问次数过多的错误。在这里插入图片描述
这里可能就是触发了网站的反爬机制,常见的反爬措施就是cookies校验,请求头的验证什么的,我们在python中使用requests包的session模块尝试一下后会发现要想拿到这个网站的数据,一个是要得到起始搜索页面的cookies,然后还要定制请求头。
(1)得到cookies并不能得到要的数据
在这里插入图片描述
(2)修改headers后添加referer后,可以拿到数据
请求头中rederer的作用就是标识这个请求从哪里来的,服务器可以拿到这个信息并做相应的处理,这里就说明了这个请求是从搜索页面来的,所以单独打开一个标签去访问那个request url拿不到结果。
在这里插入图片描述
4.分析拿到的json数据,取出我们想要的数据
通过json包的loads()方法来得到数据,至此单个页面的数据分析差不多就结束了。
在这里插入图片描述

三.代码实现

# /usr/env/bin/python3
# -*-coding: utf-8 -*-


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值