爬取拉勾网的职位信息

项目流程

(1)分析职位页面的请求方式与请求数据

1.随便搜索一个职位进入职位界面,然后点击下一页,发现浏览器顶部的网址并未发生变化,因此分析请求方式应该是ajax的发起的post请求

2.点击右键打开浏览器的检查元素,选择network,再点击下面的XHR,此时再次点击下一页,发现出现一个ajax请求,点击进去会出现请求头,响应数据,查询字符串参数与请求数据,根据这些数据可知确实是ajax的post请求

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.再次点击一个界面,然后对比两次请求数据的差异,分析出哪些数据是不变的,哪些是该改变的,以及改变的规律是什么,对比之后你会发现改变的数据只有页数,其他并未改变,而且可以根据字段的意思分析出每个字段携带的数据是什么。

(2)找出需要数据的位置

1.点击预览可以看到返回的响应信息,然后去分析这些响应信息,我们可以看出我们需要的信息在result中(这里可以百度第三方工具json在线编辑器去转换一下,更有助于我们去分析这些json数据)

2.找到位置后就需要我们研究如何去取出我们需要的数据,这里选择使用jsonpath来进行取数据,jsonpath的使用非常简单,根据数据的形式我们可以得出匹配格式为jsonpath(python_obj, “$…result”)[0],其中python_obj为响应的json数据转换后的python数据类型

3.分析完之后就可以使用代码来实现了,如果代码完成过程中发现有什么缺失的地方没有注意到,就回头继续完善分析

(3)代码实现

1.先建立一个代码框架,写出需要实现的函数,这样有利于思路的清晰,写出一个主函数,一个请求函数,一个处理函数,一个保存函数

2.主函数中写整个项目的流程,所有的调用都在主函数中

3.请求函数只负责向服务器发送请求,并接收返回数据(这里使用requests发送请求)

4.处理函数根据自己的需求去取出我们需要的数据(前面已经分析出如何取出数据,可以直接写入代码)

5.保存函数根据自己方便查看的文件格式进行保存(这里选择csv格式保存数据)

具体代码流程与步骤详解源码中都有注释
(如果想看源码或更多小项目请点击码云

注意事项:

(1)此流程适用于大部分爬虫项目
(2)此项目我设置的爬取前5页,可以自行修改
(3)保存的csv文件如果直接使用wps打开可能出现乱码,可以在wps设置编码为utf-8就可以了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你写一个Python的虫代码,使用requests和BeautifulSoup库来勾网职位信息。以下是代码: ```python import requests from bs4 import BeautifulSoup def get_job_info(url): response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') job_name = soup.select('.job-name')[0].text.strip() salary = soup.select('.job_request .salary')[0].text.strip() experience = soup.select('.job_request p')[1].text.strip() education = soup.select('.job_request p')[2].text.strip() tags = [tag.text.strip() for tag in soup.select('.position-label li')] company = soup.select('.company')[0].text.strip() return {'Job': job_name, 'Salary': salary, 'Experience': experience, 'Education': education, 'Tags': tags, 'Company': company} def get_jobs_list(city, keyword, pages=1): jobs_list = [] for page in range(1, pages+1): url = f'https://www.lagou.com/{city}/zhaopin/{keyword}/{str(page)}/?filterOption=3' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') job_items = soup.select('.itemcon') for job in job_items: job_url = job.select('.positionlink')[0].get('href') job_info = get_job_info(job_url) jobs_list.append(job_info) return jobs_list jobs = get_jobs_list('beijing', 'python', pages=2) for job in jobs: print(job) ``` 该虫代码可以勾网北京地区Python职位信息。你可以替换city和keyword变量的值来搜索其他城市和职位需求。pages参数是可选的,默认为1,如果设置为2,则前两页的职位信息。 以上是该虫代码的实现,如果你有其他问题,可以随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值