大家都知道金三银四是每年的求职高峰期,是中国招聘市场中最热门的季节之一。这段时间内,许多公司会发布大量的招聘信息,吸引大批求职者前来应聘。同时,也有许多人选择这个时候跳槽,因为这个时候找到新工作的机会相对较大。
疫情放开后感觉求职却越来越难了,现在大家求职都是通过各种招聘app,但是上面太多的岗位介绍,错综复杂的。而且不能把全部的信息全部罗列出来,这样也让人很苦恼,所以今天我们就通过python爬虫技术,为大家解决这个问题。首先我们的爬取目标是boss直聘,需求就是批量把地点、 公司名、工资 、等详细资料做成文档。,在获取数据之前简单的对网站进行了分析,该网站上的反爬主要有两点。1、 直接使用requests库,在不设置任何header的情况下,网站直接不返回数据。2、同一个ip连续访问多次,直接封掉ip。
上面2个都是爬虫道路上的基本困难,直接的解决办法就是1、获取正常的 http请求头,并在requests请求时设置这些常规的http请求头。2、使用代理IP进行访问,代理的质量有千差万别,需要根据自己的实际业务去测试为准招聘网站对IP的需求就很严,经过多次测试对比最后选择了亿牛云爬虫代理,编写爬虫程序并添加代理IP代码如下:
import requests
import random
# 要访问的目标页面
targetUrl = "https://www.zhipin.com/chengdu/?sid=sem_pz_bdpc_dasou_title"
# 要访问的目标HTTPS页面
# targetUrl = "https://www.zhipin.com/chengdu/?sid=sem_pz_bdpc_dasou_title"
# 代理服务器(产品官网 www.16yun.cn)
proxyHost = "t.16yun.cn"
proxyPort = "31111"
# 代理验证信息
proxyUser = "16JVJVOR"
proxyPass = "854562"
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
"host" : proxyHost,
"port" : proxyPort,
"user" : proxyUser,
"pass" : proxyPass,
}
# 设置 http和https访问都是用HTTP代理
proxies = {
"http" : proxyMeta,
"https" : proxyMeta,
}
# 设置IP切换头
tunnel = random.randint(1,10000)
headers = {"Proxy-Tunnel": str(tunnel)}
resp = requests.get(targetUrl, proxies=proxies, headers=headers)
print resp.status_code
print resp.text