python数据分析实例:利用python爬虫获取数据_爬虫数据采集实例(2)

回到正题,虽然新开窗口,无法访问,但条条大陆通罗马,我们可以在右边的框中,切换到“Preview”,然后点content——positionResult查看,能看到是关于职位的信息,以键值对的格式呈现,这就是json格式,特别适合网页数据交换。
在这里插入图片描述
第一步网页分析,至此结束,下一步,我们来构造请求网址。

第二步,网址构造

在“Headers”中,看到网页地址,通过观察网页地址可以发现推测出: http://www.lagou.com/jobs/positionAjax.json?这一段是固定的,剩下的我们发现有个city=%E5%8C%97%E4%BA%AC&needAddtionalResult=false&isSchoolJob=0
在这里插入图片描述
再查看请求发送参数列表,到这里我们可以肯定city参数便是城市,pn参数便是页数,kd参数便是职位关键字。
在这里插入图片描述

当然这只是一个网页的内容,对于更多页面的内容,怎么获取呢?再来看看关于“产品运营”职位,一共有30页,每页有15个数据,所以我们只需要构造循环,遍历每一页的数据。
在这里插入图片描述

第三步,编写爬虫脚本写代码

需要说明的是因为这个网页的格式是用的json,那么我们可以用json格式很好的读出内容。 这里我们切换成到preview下,然后点content——positionResult——result,可以发现出先一个列表,再点开就可以看到每个职位的内容。为什么要从这里看?有个好处就是知道这个json文件的层级结构,方便等下编码。

具体代码展示:

import requests,json
from openpyxl import Workbook

#http请求头信息
headers={
'Accept':'application/json, text/javascript, */*; q=0.01',
'Accept-Encoding':'gzip, deflate, br',
'Accept-Language':'zh-CN,zh;q=0.8',
'Connection':'keep-alive',
'Content-Length':'25',
'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
'Cookie':'user_trace_token=20170214020222-9151732d-f216-11e6-acb5-525400f775ce; LGUID=20170214020222-91517b06-f216-11e6-acb5-525400f775ce; JSESSIONID=ABAAABAAAGFABEF53B117A40684BFB6190FCDFF136B2AE8; _putrc=ECA3D429446342E9; login=true; unick=yz; showExpriedIndex=1; showExpriedCompanyHome=1; showExpriedMyPublish=1; hasDeliver=0; PRE_UTM=; PRE_HOST=; PRE_SITE=; PRE_LAND=https%3A%2F%2Fwww.lagou.com%2F; TG-TRACK-CODE=index_navigation; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1494688520,1494690499,1496044502,1496048593; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1496061497; _gid=GA1.2.2090691601.1496061497; _gat=1; _ga=GA1.2.1759377285.1487008943; LGSID=20170529203716-8c254049-446b-11e7-947e-5254005c3644; LGRID=20170529203828-b6fc4c8e-446b-11e7-ba7f-525400f775ce; SEARCH_ID=13c3482b5ddc4bb7bfda721bbe6d71c7; index_location_city=%E6%9D%AD%E5%B7%9E',
'Host':'www.lagou.com',
'Origin':'https://www.lagou.com',
'Referer':'https://www.lagou.com/jobs/list_Python?',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
'X-Anit-Forge-Code':'0',
'X-Anit-Forge-Token':'None',
'X-Requested-With':'XMLHttpRequest'
}

 
def get_json(url, page, lang_name):
    data = {'first': "true", 'pn': page, 'kd': lang_name,'city':"北京"}

#POST请求
    json = requests.post(url,data,headers=headers).json()
    list_con = json['content']['positionResult']['result']
    info_list = []
    for i in list_con:
        info = []
        info.append(i['companyId'])
        info.append(i['companyFullName'])
        info.append(i['companyShortName'])
        info.append(i['companySize'])
        info.append(str(i['companyLabelList']))
        
        info.append(i['industryField'])
        info.append(i['financeStage'])
        
        info.append(i['positionId'])
        info.append(i['positionName'])
        info.append(i['positionAdvantage'])
#         info.append(i['positionLables'])
                     
        info.append(i['city'])        
        info.append(i['district'])
#         info.append(i['businessZones'])
        
        info.append(i['salary']) 
        info.append(i['education'])         
        info.append(i['workYear'])    
        info_list.append(info)
    return info_list
 

def main():
    lang_name = input('职位名:')
    page = 1
    url = 'http://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false'
    info_result=[]  
    title = ['公司ID','公司全名','公司简称','公司规模','公司标签','行业领域','融资情况',"职位编号", "职位名称","职位优势","城市","区域","薪资水平",'教育程度', "工作经验"]    
    info_result.append(title)  

#遍历网址  
    while page < 31:
        info = get_json(url, page, lang_name)
        info_result = info_result + info
        page += 1
#写入excel文件
        wb = Workbook()
        ws1 = wb.active
        ws1.title = lang_name
        for row in info_result:
            ws1.append(row)
        wb.save('职位信息3.xlsx')
    
    
main()

打开excel文件,查看数据是否存取成功:
在这里插入图片描述
我们看到,关于“产品运营”岗位的数据,被成功的保存在excel表格中。下一步就是,据此爬取的数据,做数据处理。关于数据分析中的第三个步骤:数据处理的问题,我们下回再聊。

爬虫是获取外部数据的一个很方便的工具,关于爬虫的知识,远不止于此,这里只是一个简单的示例。作为产品运营人员,虽然需要与数据打交道,但是写爬虫也未必是必须要掌握的技能。然而点亮这个技能树,我个人觉得肯定不会是坏事情。而且作为产品运营,难免会经常和技术同事打交道,如果我们在沟通时,能让双方站在对等的语言交流环境里,也会方便信息的沟通和理解。而让双方站在对等的语言交流环境里,最好的方法,就是熟悉对方的语言环境,这也是自己接触学习python主要原因之一。

技术距离普通人很远吗?或许以前是,但是现在这个时代,如果稍微以超前一点的视角来看待,也许不用几年,具备一点编程能力就不再是一个人的可选项技能,而是成为不得不掌握的基础办公技能,就跟现在,作为职场人你必须得掌握office办公软件一样。这个世界是动态的,用静态的眼光看世界看自己,只会越来越傻。和时代共振,我们才会找到又焦虑又舒服的频率。

最后

在学习python中有任何困难不懂的可以微信扫描下方CSDN官方认证二维码加入python交流学习
多多交流问题,互帮互助,这里有不错的学习教程和开发工具。

👉[[CSDN大礼包:《python安装包&全套学习资料》免费分享]]安全链接,放心点击

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值