学习模拟登录——获取参数servertime等

2015-12-08  15:36:59

获取get包的参数

别人的代码:

1 def sServerData(serverData):
2     p = re.compile('\((.*)\)')    # 定义正则表达式
3     jsonData = p.search(serverData).group(1)  # 通过正则表达式查找并提取分组1
4     data = json.loads(jsonData)
5     serverTime = str(data['servertime'])   # 获取data中的相应字段,Json对象为一个字典
6     nonce = data['nonce']
7     pubkey = data['pubkey']
8     rsakv = data['rsakv']  # 获取字段
9     return serverTime, nonce, pubkey, rsakv

 

其中jsondata是一个str类型的变量,要提取相应字段,就必须转化成字典使用。上面的json.load()函数可以编码(补充函数的功能)

还可以使用下列方法:

1 >>> a = "{'a': 'hi', 'b': 'there'}"
2 >>> b = eval(a)
3 >>> b
4 {'a': 'hi', 'b': 'there'}
5 >>> exec ("c=" + a)
6 >>> c
7 {'a': 'hi', 'b': 'there'}
8 >>>

 

最后的代码可以写成

 1 #-*- coding:UTF-8 -*-
 2 #爬虫的servertime的测试
 3 import urllib2
 4 import re
 5 import json
 6 serverurl="http://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=&rsakt=mod&client=ssologin.js(v1.4.18)&_=1407721000736"
 7 serverdata=urllib2.urlopen(serverurl).read()
 8 p = re.compile('\((.*)\)')    # 定义正则表达式
 9 jsonData = p.search(serverdata).group(1) 
10 zidata=eval(jsonData)
11 #jsondata是一个str类型的变量!!
12 data = json.loads(jsonData)
13 ##此处用match会报错:NONE对象没有group方法
14 serverTime = str(data['servertime'])   # 获取data中的相应字段,Json对象为一个字典
15 nonce = data['nonce']
16 pubkey = data['pubkey']
17 rsakv = data['rsakv']  # 获取字段
18 print serverTime ,nonce,pubkey,rsakv
19 
20 print serverdata
21 print jsonData
22 print type(jsonData)#["secvertime"]
23 print type(zidata)#["secvertime"]
24 print zidata["servertime"]
25 print zidata["nonce"]
26 print zidata["pubkey"]
27 print zidata["rsakv"]
28 #print data

 

转载于:https://www.cnblogs.com/zjj-laibujishuozaijian/p/5029283.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值