python爬虫开发–实战百度招聘(json包的处理)
2016-04-22 23:58
537 查看
今天开始做了一个抓取有用信息的工具。
我选择了一个百度找工作的入口。直接抓取能去到当前页面的所有信息,但是没有找到下一页的链接。通过岔开源代码,原来是动态加载的js代码。
F12开发者工具轻松的找到get提交的数据:
html = urllib2.urlopen(r’http://zhaopin.baidu.com/api/async?query=python&salary=&welfare=&education=&sort_key=&sort_type=1&city=%E5%8C%97%E4%BA%AC&district=&experience=&employertype=&jobfirstclass=&jobsecondclass=&jobthirdclass=&date=&detailmode=close&rn=30&pn=90‘)
其中很明显参数和页数以及搜索的类型有关系,这样就能构造下次页面抓取的链接。
点击这个链接之后发现返回的是json代码(而且是乱码),不要紧,先抓下来再说。
#-*- coding:utf-8 -*- import urllib2 import json import sys reload(sys) sys.setdefaultencoding('utf-8') html = urllib2.urlopen(r'http://zhaopin.baidu.com/api/async?query=python&salary=&welfare=&education=&sort_key=&sort_type=1&city=%E5%8C%97%E4%BA%AC&district=&experience=&employertype=&jobfirstclass=&jobsecondclass=&jobthirdclass=&date=&detailmode=close&rn=30&pn=90') hjson = json.loads(html.read())
其中json.loads 这里就把json格式的包变成了dict类型的数据了
,接下来就能像操作字典一样操作他了。
补充:
d1 = json.dumps(data1,sort_keys=True)
这个函数是吧字典转换成json包的
接下来就是一层一层的剥开json报了,平行的[]这种需要先取出元素再次网下拨。
具体代码如下:
for i in range(30): print i #print hjson['data']['data']['OtherInfo']['job_fenlei'][i]['disp'] #print hjson['data']['data']['OtherInfo']['job_fenlei'][i]['req'] #print hjson['data']['data']['OtherInfo']['job_fenlei'][i]['url'] # print hjson['data']['data']['OtherInfo']['job_fenlei'][0] #print hjson['data']['data']['disp_data'][i] print hjson['data']['data']['disp_data'][i]['StdStg'] print hjson['data']['data']['disp_data'][i]['StdStl'] print hjson['data']['data']['disp_data'][i]['_update_time'] print hjson['data']['data']['disp_data'][i]['city'] print hjson['data']['data']['disp_data'][i]['companyaddress'] print hjson['data']['data']['disp_data'][i]['companydescription'] print hjson['data']['data']['disp_data'][i]['description'] print hjson['data']['data']['disp_data'][i]['description_jd']
哈哈哈,这样就能抓到当前页的所有代码了,红红火火哈哈哈哈哈哈哈哈哈
结果如下
今天开始做了一个抓取有用信息的工具。
我选择了一个百度找工作的入口。
直接抓取能去到当前页面的所有信息,但是没有找到下一页的链接。通过岔开源代码,原来是动态加载的js代码。
F12开发者工具轻松的找到get提交的数据:
html = urllib2.urlopen(r’http://zhaopin.baidu.com/api/async?query=python&salary=&welfare=&education=&sort_key=&sort_type=1&city=%E5%8C%97%E4%BA%AC&district=&experience=&employertype=&jobfirstclass=&jobsecondclass=&jobthirdclass=&date=&detailmode=close&rn=30&pn=90‘)
其中很明显参数和页数以及搜索的类型有关系,这样就能构造下次页面抓取的链接。
点击这个链接之后发现返回的是json代码(而且是乱码),不要紧,先抓下来再说。
#-*- coding:utf-8 -*- import urllib2 import json import sys reload(sys) sys.setdefaultencoding('utf-8') html = urllib2.urlopen(r'http://zhaopin.baidu.com/api/async?query=python&salary=&welfare=&education=&sort_key=&sort_type=1&city=%E5%8C%97%E4%BA%AC&district=&experience=&employertype=&jobfirstclass=&jobsecondclass=&jobthirdclass=&date=&detailmode=close&rn=30&pn=90') hjson = json.loads(html.read())
其中json.loads 这里就把json格式的包变成了dict类型的数据了
,接下来就能像操作字典一样操作他了。
补充:
d1 = json.dumps(data1,sort_keys=True)
这个函数是吧字典转换成json包的
接下来就是一层一层的剥开json报了,平行的[]这种需要先取出元素再次网下拨。
具体代码如下:
for i in range(30): print i #print hjson['data']['data']['OtherInfo']['job_fenlei'][i]['disp'] #print hjson['data']['data']['OtherInfo']['job_fenlei'][i]['req'] #print hjson['data']['data']['OtherInfo']['job_fenlei'][i]['url'] # print hjson['data']['data']['OtherInfo']['job_fenlei'][0] #print hjson['data']['data']['disp_data'][i] print hjson['data']['data']['disp_data'][i]['StdStg'] print hjson['data']['data']['disp_data'][i]['StdStl'] print hjson['data']['data']['disp_data'][i]['_update_time'] print hjson['data']['data']['disp_data'][i]['city'] print hjson['data']['data']['disp_data'][i]['companyaddress'] print hjson['data']['data']['disp_data'][i]['companydescription'] print hjson['data']['data']['disp_data'][i]['description'] print hjson['data']['data']['disp_data'][i]['description_jd']
哈哈哈,这样就能抓到当前页的所有代码了,红红火火哈哈哈哈哈哈哈哈哈
结果如下:
相关文章推荐
- Python2.7爬虫练习爬百度百科python词条
- (转载)Python学习–数据分析路线
- Python Challenge
- python中的实例方法、静态方法、类方法、类变量和实例变量
- python的collection系列-可命名元组(namedtuple)
- python中的函数
- python之pandas的使用:数据的导入技巧
- python爬虫
- Python中Matplotlib绘图
- Python调试
- LeetCode[Design]----Peeking Iterator
- 使用python字典合并文本
- VScode编写第一个Python程序HelloWorld
- Python机器学习库scikit-learn实践
- sublime运行python3
- 基于python实现的抓取腾讯视频所有电影的爬虫
- Python 的 Magic Methods 指南
- ubuntu下mysql-python模块的安装
- install Chaco——交互式图表
- 在Source Insight 中阅读python