linkais 发表于 2021-6-25 22:33:06

url动态变化参数的问题

访问一个url:#https://www.pearvideo.com/category_loading.jsp?reqType=5&categoryId=9&start=0&mrd=0.6550337226951173
后面的mrd参数是动态变化的,使用过期的mrd得到的不是想要的,请问这有方法可以解决吗?

wp231957 发表于 2021-6-26 07:30:09

我觉得应该查它的父级链接

南归 发表于 2021-6-26 08:38:58

var postdata = "reqType=" + reqType + "&categoryId=" + categoryId + "&start=" + next_start + "&sort=" + popularLength + "&mrd=" + Math.random();

如此可见就是随机数....

南归 发表于 2021-6-26 08:40:21

南归 发表于 2021-6-26 08:38
如此可见就是随机数....

https://www.pearvideo.com/js/loadpopular.js?v=4.90

linkais 发表于 2021-6-26 22:10:59

wp231957 发表于 2021-6-26 07:30
我觉得应该查它的父级链接

其实想要的是这个url里面的内容https://www.pearvideo.com/videoStatus.jsp?contId=1732855&mrd=0.5076801804591602 父级链接是https://www.pearvideo.com/video_1732855

直接打开出来的是{
        "resultCode":"5",
        "resultMsg":"该文章已经下线!",
        "systemTime": "1624716640483"
}

linkais 发表于 2021-6-26 22:11:50

南归 发表于 2021-6-26 08:38
如此可见就是随机数....

对阿

wp231957 发表于 2021-6-27 07:26:54

linkais 发表于 2021-6-26 22:10
其实想要的是这个url里面的内容https://www.pearvideo.com/videoStatus.jsp?contId=1732855&mrd=0.507680 ...

这样可以拿到,但是 我发现里面的mp4不可下载啊   不知道咋回事

import requests,random

url="https://www.pearvideo.com/videoStatus.jsp?"
mrd=str(random.random());
params={
    'contId': '1732855',
    'mrd': mrd
}
headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36',
    'Cookie': '__secdyid=dba3ee95d2d866dfebc21023fe5936d17737768b9545fbc5021624749764; acw_tc=781bad3116247497640498500e05a5e2ea4ca570ac75959e8112fccb8dc54d; JSESSIONID=427B7C371F35DDA2CCB59E06CE599242; PEAR_UUID=052064b3-d07d-48c2-aff3-b172ce585e55; _uab_collina=162474976832900296017793; p_h5_u=6716E8E6-B42B-48CF-922B-663A084E8896; Hm_lvt_9707bc8d5f6bba210e7218b8496f076a=1624749769; Hm_lpvt_9707bc8d5f6bba210e7218b8496f076a=1624749769; UM_distinctid=17a4aa202265f4-09cbe07c49f3ae-6373264-15f900-17a4aa2022760e; CNZZDATA1260553744=746164291-1624747203-%7C1624747203; SERVERID=a7cc60ddba048546c9441d2558c201d4|1624749771|1624749764',
    'Host': 'www.pearvideo.com',
    'Referer': 'https://www.pearvideo.com/video_1732855'
}
res=requests.get(url=url,headers=headers,params=params)
print(res.json())

'''
PS D:\wp> py douban.py
{'resultCode': '1', 'resultMsg': 'success', 'reqId': '7febf81e-7419-4561-bbad-ef26de66e615', 'systemTime': '1624749907857', 'videoInfo': {'playSta': '1', 'video_image': 'https://image2.pearvideo.com/cont/20210622/11980839-103454-1.png', 'videos': {'hdUrl': '', 'hdflvUrl': '', 'sdUrl': '', 'sdflvUrl': '', 'srcUrl': 'https://video.pearvideo.com/mp4/third/20210622/1624749907857-11980839-103436-hd.mp4'}}}
PS D:\wp>
'''

南归 发表于 2021-6-27 15:24:05

linkais 发表于 2021-6-26 22:11
对阿

对啊,根据这个https://page.pearvideo.com/webres/v4/js/mainVideo.js?v=4.86,
data: "contId=" + contId + "&mrd=" + Math.random()
自己构造随机数不就行了吗

南归 发表于 2021-6-27 15:43:59

wp231957 发表于 2021-6-27 07:26
这样可以拿到,但是 我发现里面的mp4不可下载啊   不知道咋回事

https://video.pearvideo.com/mp4/third/20210622/cont-1732855-11980839-103436-hd.mp4 #这是网页中检查元素得到的播放地址(可下载)
https://video.pearvideo.com/mp4/third/20210622/1624779505930-11980839-103436-hd.mp4 #这是从https://www.pearvideo.com/videoStatus.jsp?contId=xxxxxxxxx得到的地址(无法访问)
观察发现能够播放的地址将1624779505930(时间戳)换成了cont-1732855(contId)

linkais 发表于 2021-6-27 18:57:34

南归 发表于 2021-6-27 15:43


对 是这样的

linkais 发表于 2021-6-27 18:59:27

南归 发表于 2021-6-27 15:24
对啊,根据这个https://page.pearvideo.com/webres/v4/js/mainVideo.js?v=4.86,

自己构造随机数不就行 ...

我之前用random一个个去试 结果ip给封了{:10_277:}

南归 发表于 2021-6-27 19:08:38

linkais 发表于 2021-6-27 18:59
我之前用random一个个去试 结果ip给封了

那是爬取过快的问题了,又不是构造出错...

linkais 发表于 2021-6-27 19:29:54

南归 发表于 2021-6-27 19:08
那是爬取过快的问题了,又不是构造出错...

懂了懂了 原来是因为headers少了几个参数导致怎么匹配也匹配不了
页: [1]
查看完整版本: url动态变化参数的问题