2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 爬取boss直聘上面的数据遇见的问题解析

爬取boss直聘上面的数据遇见的问题解析

时间:2024-01-07 07:13:14

相关推荐

爬取boss直聘上面的数据遇见的问题解析

概述

boss直聘(/)是现在互联网招聘比较火热的一个网站,本篇文章主要是针对爬取boss直聘数据遇见的一些问题进行解析。

为什么要爬取boss直聘?

哈哈哈,当然是因为简单,啪,原因如下:

(1)动态网页,爬起来难度更大,讲起来更有内容;

(2)与一般情况不同,我们所需内容通过get请求获取不了,需进行页面分析。

1、网页解析(寻找目标请求网址)

boss直聘比起其他的动态网址爬取,我自我感觉是最简单的,哈哈,因为,目标请求网址很容易就能找到,它的位置就在第一个,然后我们打开header

我们很容易就能得到它的请求网址

url = “/job_detail/?query=%E7%88%AC%E8%99%AB&city=101250100&industry=&position=”

在此我们需要注意到,它的请求方法是GET,因此我们在后面爬取需要将它的请求方法设置为GET。

对网站进行解析完后,接下来我们写爬虫

2、 爬虫

1.先导入我们所需的包

from urllib import requestfrom urllib import parse

url = "/job_detail/?query=python&city=101250100&industry=&position="

2.设置请求头header:

为啥要设置请求头呢?

原因:因为我们要,因为boss直聘网站有自己的反爬虫机制,如果不给定一个请求头参数的话,则会被boss直聘网站开发者识别出来你是一个爬虫机制,甚至会封掉你的IP地址,这样,你就再也不能从这个网站里爬取数据了,为了安全起见,我们需要设定一个请求头参数来模拟浏览器行为,让它无法识别我们的行为是一个爬虫机制所引导的。

headers ={"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36","referer": "/web/common/security-check.html?seed=adYW9BEBBrky4hO1yBOcGPQ85Dg%2BEt4j6t0B5yrsn9w%3D&name=b50f9365&ts=1602053080369&callbackUrl=%2Fjob_detail%2F%3Fquery%3Dpython%26city%3D101250100%26industry%3D%26position%3D&srcReferer=https%3A%2F%%2Fchangsha%2F%3Fsid%3Dsem_pz_bdpc_dasou_title", }

3.调取python里面的爬虫包

rep = request.Request(url=ur1,headers=headers,method="GET")resp = request.urlopen(rep)print(resp.read())

运行完后它给我的是这么一串信息,但我们检查网页源代码,我们可以看到,里面的信息不止这些,但我们无法读懂,其实因为print返回的是一个bytes数据类型,在这我们需要利用decode进行解码。

print(resp.read().decode("utf-8"))``

遇见这种情况“您的操作太频繁,请稍后再询问”,对于一般的爬虫小孩来说,到这一步可能就会停止了,但是对于我们内行的人来说,其实是

我们的爬虫被网站反爬虫机制识别出来的,它给我们这些信息只是为了们哄我们。

因此我们需要设置多个请求头参数,至于为啥要设置多个请求头能,因为我们知道我们每一个点击行为都是一个请求浏览行为,为了不让它识别出来,因此我们需要我们的爬虫模拟的更像浏览器行为。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。