python 获取页面动态加载的href
分析:
查看源码
1、获取页面中的a标签的href,没有点击不存在href
2、点击后在原页面没有变化的前提显示href,猜测是 触发了onclick事件
__没有在js文件中找到onclick绑定的函数
3、找到页面加载时的js文件,看不懂,开始学习js知识 https://www.bilibili.com/video/av31666355
2019-6-15 17:57:29。。。学习中
学习到一段时间后,发现方向错了,应该看jQuery,https://www.bilibili.com/video/av46598711
so,,,,,
无意发现可以调试js
获取到href的生成过程:
function reurl(a){
a.href="/item/" + recode(a.id)
};
function recode(a){
var n=nscaler(a);
var c=SetObjNum(a.length);
var d=SetObjNum(a.length);
n=parseInt(n) + parseInt(d);
var b=$("#iptstamp").val();
b=nscaler(b.toString());
return c + "-" + n + "-" + d + "-" + b
}
function nscaler(a)
{
var b="";
$.each(a,function(i,e){
switch(e){
case"0":b + ="0"; break;
case"1":b + ="2"; break;
case"2":b + ="5"; break;
case"3":b + ="8"; break;
case"4":b + ="6"; break;
case"5":b + ="1"; break;
case"6":b + ="3"; break;
case"7":b + ="4"; break;
case"8":b + ="9"; break;
case"9":b + ="7"; break
}
});
return b
}
function SetObjNum(n){
var a="";
for(var i=0;i<n;i + + )
a + =Math.floor(Math.random()*10);
return a
}
function j(b){
var c=0;
$.ajax({
url:"/details/getrsa/"+b,
type:"Get",
dataType:"json",
error:function(r,t){
var e=r.responseText?r.responseText:t;
alert(e)},
success:function(a){
if(a.state){
c=a.id;n(c)
}
},
timeout:1000
});
return c
};
换成Python代码:
import math
import random
baseUrl = r'xxx.xxx.xxx.xxx'
class HughJavaScript:
def __init__(self):
self._dictStr = {
'0': '0',
'1': '2',
'2': '5',
'3': '8',
'4': '6',
'5': '1',
'6': '3',
'7': '4',
'8': '9',
'9': '7'
}
def _nscaler(self, a):
b = ''
for asub in a:
b += self._dictStr[asub]
return b
def _setObjNum(self, n):
a = ""
for i in range(n):
a += str(math.floor(random.random() * 10))
return a
def getxiaoquUrl(self, a_id):
n = self._nscaler(a_id)
c = self._setObjNum(len(a_id))
d = self._setObjNum(len(a_id))
n = str(int(n) + int(d))
b = '1560605824359'
b = self._nscaler(b)
strRet = '{}-{}-{}-{}'.format(c, n, d, b)
strUrl = r'{}/item/{}'.format(baseUrl, strRet)
return strUrl
def getRoomjson1(self, td_id):
n = self._nscaler(td_id)
strUrl1 = r"{}/details/getrsa/{}".format(baseUrl, n)
return strUrl1
def main():
print(HughJavaScript().getxiaoquUrl('2686'))
print(HughJavaScript().getRoomjson1('4375405'))
if __name__ == '__main__':
main()