拉勾网职位数据爬取

本文介绍了如何使用Python进行拉勾网的职位数据爬取,详细讲解了分析网页、构造请求头和表单、解析JSON数据以及应对反爬虫策略的过程。最后,还对爬取的数据进行了分析。
摘要由CSDN通过智能技术生成

后面我还对爬取的数据做了分析—拉勾网Python职位分析


  • 拉勾网反爬虫做的比较严,请求头多添加几个参数才能不被网站识别。
  • 我们找到真正的请求网址,发现返回的是一个JSON串,解析这个JSON串即可,而且注意是POST传值,通过改变Form Data中pn的值来控制翻页。

需要的一些知识点

  • AJAX:Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。它不是新的编程语言,而是一种使用现有标准的新方法。它采用的是AJAX异步请求。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。因此就可以在不重新加载整个网页的情况下,对网页的某部分进行更新,从而实现数据的动态载入。
  • XHR:XMLHttpRequest 对象用于和服务器交换数据。

分析网页

打开拉勾网主页之后,我们在搜索框中输入关键字Python,以用来查找和Python相关的职位。在搜索结果的页面中,我们按照以下顺序操作:

  • 右键检查
  • 打开审查元素后默认打开的是Elements
  • 我们切换到Network标签,刷新一下网页会出现各种条目的请求
  • 因为该网站是异步请求,所以打开Network中的XHR,针对JSON中的数据进行分析。

我们点击页面中的页数,比如第2页,我们可以在右边看到一个POST请求,这个请求里面包含了真实的URL(浏览器上的URL并没有职位数据,查看源代码就可以发现这一点)、POST请求的请求头Headers、POST请求提交的表单Form Data(这里面包含了页面信息pn、搜索的职位信息kd)。

真实的URL

下面是真实的URL:
url

请求头信息

下面是我们需要构造的请求头Headers信息,如果这里没有构造好的话,容易被网站识别为爬虫,从而拒绝访问请求。
headers

表单信息

下面是我们发送POST请求时需要包含的表单信息Form Data。
data

返回的JSON数据

我们可以发现需要的职位信息在content –> positionResult –> result下,其中包含了工作地点、公司名、职位等信息。 我们只需要保存这个数据就可以了。
json

至此我们分析完毕网页,下面可以开始爬取过程了。

单个页面的爬取

import requests
from fake_useragent import UserAgent
from lxml import etree
import csv
import json
import time
import pandas as pd

构造请求头、表单

下面是构造请求头(headers)。

Host = "www.lagou.com"
Origin =  "https://www.lagou.com"
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值