kongjin 发表于 2014-04-23 11:34

菜鸟请教一个关于python生成json文件的问题~

我现在需要登陆一个鉴权的网站,然后将服务器生成的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的格式

修杰_JIANG 发表于 2014-04-23 15:25

本帖最后由 修杰_JIANG 于 2014-04-23 15:34 编辑

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



qqqqblog 发表于 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. 负分!
页: [1]
查看完整版本: 菜鸟请教一个关于python生成json文件的问题~