PDA

Показать полную графическую версию : Сбор гиперссылок на странице


ruslaw
16-11-2020, 12:32
Имеем скрипт для сбора гиперссылок на странице:

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
На PowerShell
$Site = "https://ya.ru/"
$HttpContent = Invoke-WebRequest -Uri $Site
$HttpContent.Links.href

http://www.outsidethebox.ms/18977/

ruslaw
16-11-2020, 17:31
Спасибо, но я им не владею, а мне это все надо будет потом дорабатывать

Iska
16-11-2020, 18:52
ruslaw, открывайте потребную страницу и собирайте ссылки. Впрочем, это хорошо работает только на статичных страницах, а на любимых бесконечных «прокрутках» — хреново.

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

Iska
16-11-2020, 21:51
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
Спасибо, круто.
Но я не смогу его дорабатывать, а там много разных ответвлений этой задачи ....
А что, на JS совсем нет рецептов?
Да, и у меня страницы на компьютере и ссылки на компьютерные файлы.

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

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

ruslaw
16-11-2020, 22:44
Спасибо, надеюсь повезет :)

Iska
17-11-2020, 00:51
Примерно так:
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
Оба скрипта работают с интернет-страницами, vbs так же работает с компьютерными html-страницами, а js отказывается. На работе попробую с другого компа.

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

ruslaw
17-11-2020, 08:45
вот, на работе заработала! Урра!




© OSzone.net 2001-2012