Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Сбор гиперссылок на странице (http://forum.oszone.net/showthread.php?t=347045)

ruslaw 16-11-2020 12:32 2940128

Сбор гиперссылок на странице
 
Имеем скрипт для сбора гиперссылок на странице:
Код:

var newWin = window.open("about:blank", "hello", "width=200,height=200");
for(i=0; i<document.links.length; i++) {
newWin.document.write(document.links[i].href+"<br>");
}

Он применим если включен в эту страницу.
Как модифицировать его таким образом чтобы он мог собрать ссылки на другой странице (в идеале желателен js-файл)

Vadikan 16-11-2020 15:54 2940152

На PowerShell
Код:

$Site = "https://ya.ru/"
$HttpContent = Invoke-WebRequest -Uri $Site
$HttpContent.Links.href

https://www.outsidethebox.ms/18977/

ruslaw 16-11-2020 17:31 2940165

Спасибо, но я им не владею, а мне это все надо будет потом дорабатывать

Iska 16-11-2020 18:52 2940172

ruslaw, открывайте потребную страницу и собирайте ссылки. Впрочем, это хорошо работает только на статичных страницах, а на любимых бесконечных «прокрутках» — хреново.

ruslaw 16-11-2020 19:34 2940178

целью является проверка ссылок ни битость, я такой скрипт написал, но по-прежнему не знаю как зацепить его за чужую страницу.

Iska 16-11-2020 21:51 2940187

ruslaw, ну, я могу Вам написать пример, но токмо на VBScript.

Скрытый текст
Код:

Option Explicit

Const READYSTATE_COMPLETE = 4


Dim objIE
Dim objHTMLAnchorElement


Set objIE = WScript.CreateObject("InternetExplorer.Application")

With objIE
        .Visible = False
        .Navigate "http://forum.oszone.net/forum-102.html"
       
        Do
                WScript.Sleep 100
        Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE
       
        For Each objHTMLAnchorElement In .Document.Links
                WScript.Echo objHTMLAnchorElement.href
        Next
       
        .Quit
End With

Set objIE = Nothing

WScript.Quit 0


ruslaw 16-11-2020 22:15 2940192

Спасибо, круто.
Но я не смогу его дорабатывать, а там много разных ответвлений этой задачи ....
А что, на JS совсем нет рецептов?
Да, и у меня страницы на компьютере и ссылки на компьютерные файлы.

Iska 16-11-2020 22:36 2940194

ruslaw, кто-нибудь из коллег переведёт с VBScript на JScript. Я бы и сам сделал, но… это будет строго по анекдоту «Я те говорил — место проклятое, а ты «Руки из жёппы, руки из жёппы»™. Если уж совсем никто не переведёт, тогда сделаю.

Цитата:

Цитата ruslaw
Да, и у меня страницы на компьютере и ссылки на компьютерные файлы. »

Без разницы.

ruslaw 16-11-2020 22:44 2940195

Спасибо, надеюсь повезет :)

Iska 17-11-2020 00:51 2940199

Примерно так:
Скрытый текст
Код:

var READYSTATE_COMPLETE = 4;

var objIE = WScript.CreateObject('InternetExplorer.Application');

with(objIE) {
        Visible = false;
        Navigate('http://forum.oszone.net/forum-102.html');

        do {
                WScript.Sleep(100)
        } while(!(Busy && ReadyState == READYSTATE_COMPLETE))

        var collLinks = document.links;

        for(var i = 0; i < collLinks.length; i++) {
                WScript.Echo(collLinks[i].href)
        }

        Quit()
}

WScript.Quit(0)


ruslaw 17-11-2020 07:06 2940206

Оба скрипта работают с интернет-страницами, vbs так же работает с компьютерными html-страницами, а js отказывается. На работе попробую с другого компа.

хотя сейчас попытался переместить js на флешку и он типа проснулся и все отработал, что-то наверное с компом.
Спасибо Вам, не знал про такой объект - InternetExplorer.Application

ruslaw 17-11-2020 08:45 2940211

вот, на работе заработала! Урра!


Время: 23:37.

Время: 23:37.
© OSzone.net 2001-