[其他] python能否抓取js中的内容,并且获取里面的结果

寒轩墨竹 2014-05-14

python中是否可以直接调用网页中下面的JS函数,获取需要的结果值?

function loadTaskInfo(taskId){
		HYIP.ajax("/ntask/loadAdvTaskInfo.html",{taskId:taskId},function(data){
			var result = data.data;
			if(result!=null){
				var taskName = result.taskName;
				var totalReward = result.totalReward;
				var margins = result.margins;
				var pently = result.pently;
				var totalNum = result.totalNum;
				var oneDayNum = result.oneDayNum;
				var stock = result.stock;
				var taskDesc = result.taskDesc;
				var taskImgUrl = result.taskImgUrl;
				var limitDay = result.limitDay;
				var limitNum = result.limitNum;
				var status = result.status;
				
				$("#taskName").html(taskName);
				$("#taskReward").html(totalReward);
				$("#taskMargins").html(margins);
				$("#taskPently").html(pently);
				$("#taskTotalNum").html(totalNum);
				$("#taskOneDayNum").html(oneDayNum);
				$("#taskStock").html(stock);
				$("#taskDesc").html(taskDesc);
				$("#taskImage").html("<img src='"+taskImgUrl+"' width='210' height='168'>");
				$("#taskLimitDay").html(limitDay==1?"":limitDay);
				$("#taskLimitNum").html(limitNum);
				
				if(limitNum==1){
					$("#receiveCount").attr("readonly","readonly");
				}
				
				if(limitNum>=1){
					$("#receiveLimitDiv").show();
				}
				
				if(status==2){
					$("#A_receiveTask").hide();
					$("#receiveOver").hide();
					$("#receiveOffline").show();
				}else if(stock<=0){
					$("#A_receiveTask").hide();
					$("#receiveOver").show();
					$("#receiveOffline").hide();
				}
				
				var balance = '0';
				if(balance!='' && balance!=null){
					$("#rechargelink").show();
					/* if(parseInt(margins.replace(/,/g,''))>parseInt(balance)){
						$("#rechargelink").show();
					} */	
				}
			}
		},function(data){
			
		});
	}

 请高手解答下,用什么模块什么方法,谢谢

APieceOfRedCloth 2014-05-14
ajax也是网络请求,直接拼好参数,抓这个/ntask/loadAdvTaskInfo.html
寒轩墨竹 2014-05-14
APieceOfRedCloth 写道
ajax也是网络请求,直接拼好参数,抓这个/ntask/loadAdvTaskInfo.html

 

 关键是没有这样调用过,不知道用Python的哪个模块,以及哪个方法?你能否给个模块和函数,我试下

APieceOfRedCloth 2014-05-16
寒轩墨竹 写道
APieceOfRedCloth 写道
ajax也是网络请求,直接拼好参数,抓这个/ntask/loadAdvTaskInfo.html

 

 关键是没有这样调用过,不知道用Python的哪个模块,以及哪个方法?你能否给个模块和函数,我试下

标准库 urllib

寒轩墨竹 2014-05-16
APieceOfRedCloth 写道
寒轩墨竹 写道
APieceOfRedCloth 写道
ajax也是网络请求,直接拼好参数,抓这个/ntask/loadAdvTaskInfo.html

 

 关键是没有这样调用过,不知道用Python的哪个模块,以及哪个方法?你能否给个模块和函数,我试下

标准库 urllib

恩恩,我试试吧

寒轩墨竹 2014-05-19
    def getAnotherValue(self,envMisurl):
        idlist = re.findall(r'\d', envMisurl)
        taskid = ''.join(idlist)
        url = r'http://www.xxxxxxx.com/ntask/loadAdvTaskInfo.html?taskId='+ taskid
        req = urllib2.Request(url)
        res_data = urllib2.urlopen(req)
        res = res_data.read()
        #将字符串转换为JSON对象,JSON对象是字典对象
        info = json.JSONDecoder().decode(res)
        self.name = info['data']['taskName']
        #因为数字中间有","号,因此需要用正则表达式过滤掉
        margins = re.findall('\d',str(info['data']['margins']))
        self.bail = int(''.join(margins))/100
        profit = re.findall('\d',str(info['data']['totalReward']))
        self.profit = float(''.join(profit))/100
        self.tocalNum = info['data']['totalNum']
        self.num = float(info['data']['oneDayNum'])

 

APieceOfRedCloth 写道
寒轩墨竹 写道
APieceOfRedCloth 写道
ajax也是网络请求,直接拼好参数,抓这个/ntask/loadAdvTaskInfo.html

 

 关键是没有这样调用过,不知道用Python的哪个模块,以及哪个方法?你能否给个模块和函数,我试下

标准库 urllib

谢谢了,已经搞定了,用了urllib2库,通过发送http请求,获得响应,将返回的结果转换为json对象,从该对象中提取我需要的值就可以了。

 

Global site tag (gtag.js) - Google Analytics