本小白的第一篇文章,欢迎各位大神指导,本内容仅供学习使用。
需求
爬取拉钩网招聘信息,并进一步进行分析,仅学习使用。
使用工具
python3、PyCharm
步骤
一、分析拉钩网站构成
二、爬取数据
三、数据清洗
四、生成分析数据
一、分析拉钩网站构成
进入拉钩网,按F12检查,查看Network模块。
1、先确认网页类型(分静态和动态页面),进行上下页翻页,对比发现网站URL不变,为动态网页
2、查看获取方式为:POST
!3、查看Request headers,python中需要填写,留意关键信息。
4、查找需要爬取内容位置和格式。动态页面以json格式保存。
二、爬取信息框架
1、获取response
先爬取第一页信息进行简单测试。
import requests as re
import json
base_url = "https://www.lagou.com/jobs/positionAjax.json?px=default&city=%E5%B9%BF%E5%B7%9E&needAddtionalResult=false"
base_headers = {
"Accept": "application/json, text/javascript, */*; q=0.01",
"Host": "www.lagou.com",
"Referer": "https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90?labelWords=&fromSearch=true&suginput=",
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'
}
data = {
"first": "true",
"pn": "1",
"kd": "数据分析"
}
response = re.post(url=base_url, headers=base_headers, data=data)
print(response.text)
输出结果为:
失败,分析原因,用response.status_code == 200:代码测试,连接是成功的,但返回存在问题。查阅其他文章,发现是拉钩存在的反爬机制。response需要提供cookie。但python每次爬取提供的cookie不连续hi被判断为爬虫,从而禁止访问
这里找到了两个解决方法
解决方法一、:用Session()方法储存cookie
session = re.Session() #创建cookie存储
session.get(url=base_url1,headers=base_headers) #通过网址url1