免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5465 | 回复: 2
打印 上一主题 下一主题

菜鸟请教一个关于python生成json文件的问题~ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-04-23 11:34 |只看该作者 |倒序浏览
我现在需要登陆一个鉴权的网站,然后将服务器生成的html保存成json文件,然后解析其中的数据
鉴权的代码如下
username = "xxx"
password = "xxx"
login_url = "xxx"
base_url = "xxx"
body =  (('j_username',username ), ('j_password',password))
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [('User-agent',
        'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]
urllib2.install_opener(opener)
req = urllib2.Request(login_url,urllib.urlencode(body))
try:
    u = urllib2.urlopen(req)
except urllib2.HTTPError as e:
   print e.code

鉴权通过以后需要抓取服务器页面上的数据:
u = urllib2.urlopen(base_url)
调用的这个函数返回的是一个html格式的数据,现在需要解析其中的数据,用json.loads(u)无法执行 因为u的格式不是string类型的,如果保存为json格式的文件然后再解析,用urllib.urlretrieve()这个函数,因为urllib没有绑定用户名和密码 所以只能下载鉴权的页面,请教各位大侠如果不下载为json文件,应该如何解析u = urllib2.urlopen(req)生成的html或者有没有其他办法保存html为json的格式

论坛徽章:
1
子鼠
日期:2014-05-04 13:59:31
2 [报告]
发表于 2014-04-23 15:25 |只看该作者
本帖最后由 修杰_JIANG 于 2014-04-23 15:34 编辑

urllib2.urlopen 返回一个文件对象吧



论坛徽章:
0
3 [报告]
发表于 2014-04-26 16:43 |只看该作者
1. 代码没用高亮扣分!!
2. “调用的这个函数返回的是一个html格式的数据”,到底返回啥,敢不敢贴出来,mime type到底写了啥你造吗?
3. “json.loads(u)无法执行 因为u的格式不是string类型的”,转换啊!
4. “用urllib.urlretrieve()这个函数,因为urllib没有绑定用户名和密码 所以只能下载鉴权的页面”,cookie是啥啊?
5. “应该如何解析u = urllib2.urlopen(req)生成的html或者有没有其他办法保存html为json的格式”,观察下返回结果,自己写函数提取之!
6. 推荐python requests库,业界出了这么好用的接口,性能算个屁!
7. 负分!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP