标题:求助:如何获取 永硕e盘 文件的下载链接。
只看楼主
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
得分:0 
回复 10楼 benbbs
遍历是一个程序的连续操作

打开文件夹前(第一页面)和打开文件夹后(第二页面)的网页元素(群体)是不一样的。

打开文件夹前(第一页面)和打开文件夹后(第二页面)的网页地址却是一样的。

程序使用元素elements(i).click方法单击文件夹,从第一页面来到第二页面后,无法通过访问第二页面的网页地址获取第二页面的网页元素(群体)


无法取得新页面(第二页面)的元素(群体)实现遍历。

所以无法继续遍历下去,虽然第二页面下的元素勉强也可以操作。

这不是技术好解决的问题

或许,这个网站在设计上就不想让我们遍历它,因为第二页面A标签没有id值、Class值

下面是第二页面(“数据”文件夹)主要的可操作元素列表:

0.Class名称:   元素id:   href值:javascript:;   target值:   标签值:设置目录排序方式
1.Class名称:actuatorn   元素id:   href值:http://www.   target值:_blank   标签值:[升级空间]
2.Class名称:jaml   元素id:   href值:javascript:   target值:   标签值:如何编辑删除数据
3.Class名称:jaml   元素id:   href值:http://www.   target值:_blank   标签值:进入空间后台
4.Class名称:   元素id:   href值:http://www.   target值:_blank   标签值:广告招商
5.Class名称:   元素id:   href值:javascript:;   target值:   标签值:关闭
6.Class名称:   元素id:   href值:http://www.   target值:_blank   标签值:独享IP 单窗单IP 动静态免费测
7.Class名称:   元素id:   href值:http://www.   target值:_blank   标签值:DNF魔兽原神天龙低价卡盟
8.Class名称:   元素id:   href值:http://www.   target值:_blank   标签值:▉▉▉绝地魔兽DNF卡盟▉▉▉
9.Class名称:   元素id:   href值:http://www.   target值:_blank   标签值:488卡盟▉一张卡只赚一分钱
10.Class名称:   元素id:   href值:http://yufengip.   target值:_blank   标签值:找游戏项目、工作室资源》点我
11.Class名称:   元素id:   href值:http://www.   target值:_blank   标签值:推广永硕E盘 获取分成
12.Class名称:ml   元素id:   href值:javascript:;   target值:   标签值:数据
13.Class名称:   元素id:   href值:http://ys-j.   target值:_blank   标签值:B2.txt
14.Class名称:yyck   元素id:   href值:javascript:;   target值:   标签值:打开
15.Class名称:   元素id:   href值:http://ys-j.   target值:_blank   标签值:B1.txt
16.Class名称:yyck   元素id:   href值:javascript:;   target值:   标签值:打开
17.Class名称:   元素id:   href值:javascript:   target值:   标签值:【刷新】
18.Class名称:ml   元素id:   href值:javascript:;   target值:   标签值:程序
19.Class名称:   元素id:sutjbt2   href值:javascript:;   target值:   标签值:增加目录
20.Class名称:a1   元素id:   href值:javascript:   target值:   标签值:刷新目录
21.Class名称:   元素id:   href值:http://www.   target值:_blank   标签值:[举报]
0.Input元素名称:xm   Value值:   placeholder值:
1.Input元素名称:bdgkpdlyb   Value值:on   placeholder值:
2.Input元素名称:bdbq   Value值:1   placeholder值:
3.Input元素名称:lyb_gly   Value值:on   placeholder值:
4.Input元素名称:lyb_zd   Value值:on   placeholder值:
5.Input元素名称:buly   Value值:提交留言   placeholder值:
6.Input元素名称:sutjbt   Value值: 增加目录    placeholder值:
7.Input元素名称:wjlx1   Value值:on   placeholder值:
8.Input元素名称:wjlx2   Value值:on   placeholder值:
9.Input元素名称:wjlx4   Value值:on   placeholder值:
10.Input元素名称:wjlx3   Value值:on   placeholder值:
11.Input元素名称:scbt2   Value值:   placeholder值:链接显示文字。必填项。
12.Input元素名称:teljdz   Value值:   placeholder值:链接的网址,必须填写完整网址。
13.Input元素名称:bulj   Value值:增加链接   placeholder值:
14.Input元素名称:scbt4   Value值:   placeholder值:文本标题,必填项
15.Input元素名称:tewb   Value值:   placeholder值:显示在标题后面,必填项
16.Input元素名称:buwz   Value值:增加文字项   placeholder值:
17.Input元素名称:tezml   Value值:   placeholder值:
18.Input元素名称:buzml   Value值:增加子目录   placeholder值:
19.Input元素名称:bdglymm   Value值:   placeholder值:
20.Input元素名称:sutjgl   Value值:登录   placeholder值:
21.Input元素名称:   Value值:空间设置   placeholder值:
22.Input元素名称:   Value值:空间设置   placeholder值:
23.Input元素名称:glytc   Value值:退出管理   placeholder值:
24.Input元素名称:buzx   Value值:在线列表   placeholder值:
25.Input元素名称:buxz   Value值:下载记录   placeholder值:
26.Input元素名称:buexit   Value值:退出系统   placeholder值:
0.textarea元素名称:nr   Value值:   placeholder值:未开放访客留言权限

关上上楼代码:
Set IE = CreateObject("InternetExplorer.Application")  '调用IE对象打开网站,以便得到元素
IE.Visible = False                                      'False为浏览器窗口不可见,True为可见

会打开你的360浏览器可能是你的360浏览器是默认浏览器,但IE.Visible = False语句不能让它不可见的原因(只能让IE对象打开的浏览器窗口不可见)

在我的电脑上运行是不可见的。可能你的电脑存在设置上的问题,所以可见360浏览器打开了页面。

WebBrowser1和InternetExplorer.Application获取元素的方法差不多。

我的结论:
想要VB6或者使用VBScript的方法继续遍历下去,很难。

[此贴子已经被作者于2021-2-4 09:05编辑过]


心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2021-02-04 08:20
benbbs
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2021-1-31
得分:0 
回复 11楼 yuma
好吧,老大都搞不定的,小白也不想弄了。看来是个很深的坑。
2021-02-04 13:10
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:10 
试了一下,得出结论,需要分析JS。

下面是抓包的结果。从返回的结果来看,是使用的动态加载,
发包:
GET /f_ht/ajcx/wj.aspx?cz=dq&mlbh=2333186&wjpx=1&_dlmc=venman&_dlmm= HTTP/1.1
Host: cg.
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept: */*
DNT: 1
Referer: http://cg.
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN
Cookie: __yjs_duid=1_aab36b2d9f0068fa1125f4b6743e8bb01612437676878; UM_distinctid=1776cc66618b25-02fb60d4ed3376-71273e10-1aeaa0-1776cc666192a1; CNZZDATA1256793290=1321558718-1612434728-%7C1612434728

收包:
HTTP/1.1 209
Date: Thu, 04 Feb 2021 11:58:57 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
X-AspNet-Version: 4.0.30319
X-Powered-By:
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
YJS-ID: 9c6d280f5ecd30dc-125
Server: yunjiasu

353
_mlxx.scdz = 'http://ys-O.';_mlxx.gx(2333186, '01100');var x = _mlxx.find(2333186);x.scpz = '';x.xzzt = true;_kj.jzxzlx = 0;_kj.cjzscxx('');x.ckzt = true;[
]<li id="W_19315177" class="xwj"  data-ck="3"><img class="bjtb" src="http://zy. /><a href="http://ys-K.  title="...... 1...26... 18:26" target="_blank">A2.txt</a><i>4Byte</i><b></b><span></span><a class="yyck" href="javascript:;">......</a></li><li id="W_19315176" class="xwj"  data-ck="3"><img class="bjtb" src="http://zy. /><a href="http://ys-K.  title="...... 1...26... 18:26" target="_blank">A1.txt</a><i>4Byte</i><b></b><span></span><a class="yyck" href="javascript:;">......</a></li>

授人于鱼,不如授人于渔
早已停用QQ了
2021-02-04 20:07
benbbs
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2021-1-31
得分:0 
回复 13楼 风吹过b
又引来一位大神!果然是越来越高深了,我就以为简单的获取网页源码就能得到链接,搞了几遍都不知道什么回事。现在又来什么发包,收包,是要搞出新高度么
2021-02-04 20:37
benbbs
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2021-1-31
得分:0 
坐等大神用VB实现:后台获取文件夹及各个文件夹下面的资源链接。
2021-02-05 23:49
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
最近一段时间都没忙着。

我理解的思想如下:
1、进入网页调试状态,找到点击文件夹后调用的JS函数,分析该JS函数的算法,然后自己使用VB写出算法来。
2、程序里,先打开网页,取得 COOKIE,然后再取得的文件夹有关数据,然后有二种方案
   可以使用WINSOCK,模拟 HTTP 的请求,发出所要求的状态包。然后接收返回的数据包。
   也可以使用 WinHttp 模拟读取文件夹。
这二种方案请求数据的方案,第二种可能更简单一点,但不知道还不能达到所需的目的。
现在关键是分析JS里的算法。能分析出JS算法,这个事就完成了60%。


授人于鱼,不如授人于渔
早已停用QQ了
2021-02-07 09:28
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
点击目录应该是执行这句吧,
        this.oml.on("click", ".ml", function () { _ml.dj($(this).parent()); });


从抓包结果看,请示的链接是:
http://cg.

那可能的函数是:
http://zy.

var _wj = {
    gxcl: function () {
        if (_mlxx.dqpd()) _wj.dq();
    },
    dq: function (rbh) {
        if (!rbh) rbh = _ml.dqxz;
        if (rbh <= 0) return;
        var f = _ml.fx(rbh);
        _mlxx.find(rbh).gxpd = false;
        var jlzml = _ml.dqzml;
        f.wjq_().html("<li class='lxts'><span class='s3'>正在读取数据...</span></li>");
        _AJ("wj.aspx?cz=dq&mlbh=" + rbh + "&wjpx=" + $(_ml.find(rbh)).attr("data-px"), function (r) {
            var xx = _mlxx.find(rbh);
            xx.dqsj = new Date().getTime();
            xx.gxpd = false;
            xx.isdq = true;
            var s1 = "<li class='lxts'><span class='s1'></span>";
            s1 += "<a style='color:#999966;' href='javascript:'>【刷新】</a>";
            s1 += "</li>";

            r = vre(r, "&amp;", "&");    //兼容处理
            f.wjq_().html(r + s1);
            _zml.ztjc(jlzml);
            _ml.gxtj(f);
            _ml.cdqxz(rbh);
            //_zdy.gx(rbh);
            _gxxl.gx();
            _ev.cf("_ml.dq", rbh);
            _ym.dw(_ml.find(rbh));
        }, function (r) {
            alert(r);
            _ml.cdqxz(-1);
        });

    },

我对JS一知半解,给绕晕了。

授人于鱼,不如授人于渔
早已停用QQ了
2021-02-07 09:54
benbbs
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2021-1-31
得分:0 
继续水这个帖子,直到有高手解决了问题
2021-02-08 19:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-504792-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.499753 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved