Javascript is required
用爬虫下载资源网站资源

看到一个网站,规则是这样的。

充值会员,免费下载资源。

所以如何通过脚本快速下载所有资源, 并不是手动去点击下载。

image-20210428215556805

# 分析
1. 用户是登陆之后才有权限的。 是不是可以通过Cookie, LocalStorage 获得登陆过的Token呢?
2. 通过账号密码手动登陆,抓包分析?

为了防止其他因素的影响。进入无痕模式。

image-20210428215500763


通过登陆方式 获取信息。

登陆验证

https://www.xiuzhanwang.com/member/index_do.php

# 正确输入

# 错误输入
{success: 0, msg: "用户不存在!"}

下载文件

获取资源ID

https://www.xiuzhanwang.com/dedecms_mf/2774.html ID即2774.知道这个规律就行。

点击下载,请求https://www.xiuzhanwang.com/plus/getmuban.php%E3%80%82

# 请求
https://www.xiuzhanwang.com/plus/getmuban.php
# 请求头
:authority: www.xiuzhanwang.com
:method: POST
:path: /plus/getmuban.php
:scheme: https
accept: application/json, text/javascript, */*; q=0.01
accept-encoding: gzip, deflate, br
accept-language: zh-CN,zh;q=0.9
content-length: 7
content-type: application/x-www-form-urlencoded; charset=UTF-8
cookie: PHPSESSID=h9dn17uq2hi4vr7b8unj6ev555; Hm_lvt_d3b36dbb05786259b188d50b1c64d2b8=1619618084; DedeUserID=3504; DedeUserID__ckMd5=ff8de111287c4604; DedeLoginTime=1619618687; DedeLoginTime__ckMd5=f678fc7917f612d6; Hm_lpvt_d3b36dbb05786259b188d50b1c64d2b8=1619618817
origin: https://www.xiuzhanwang.com
referer: https://www.xiuzhanwang.com/dedecms_mf/2774.html
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"
sec-ch-ua-mobile: ?0
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-origin
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36
x-requested-with: XMLHttpRequest
# 参数
id: 2774

获取具体的链接。 通过上一步获取uhash

# 请求
https://www.xiuzhanwang.com/plus/getmuban.php
# 参数
id: 2774
uhash: 5576facb4802ba11125198ac
open: 2

响应值是image-20210428222251922

链接和验证码都在HTML中。 解析出来就可以了。

编码

image-20210429001306171

遇到的一些问题

网站默认是gbk编码的, 所以get请求的时候,需要转化。 还有post请求来的数据是unicode的,通过下面这个网站转码更容易看到返回的数据内容。

unicode转中文。

https://www.bejson.com/convert/unicode_chinese/