当前位置:   article > 正文

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 -*-


'la gou wang spider'

__author__ = 'zfyao'
__data__ = '2020-2-16'


import time
import requests
from requests.exceptions import RequestException
from urllib.parse import
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/939857
推荐阅读
相关标签
  

闽ICP备14008679号