Что нового

[Сеть, интернет] Различить тип ссилки

Fraks

Новичок
Сообщения
22
Репутация
1
Функцией _IELinkGetCollection я собрал все ссилки на сайте. И теперь мне надо их типизировать. Тоесть, если ссилка имеет вид http://flyback.org.ru/privmsg.php?mode=post&u=...то мне надо ее добавить в файл. Как отличить ссилки такого типа от остальных?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
OffTopic:
Боже мой. что здесь делает эта тема? :blink:

Garrett, срочно переноси от греха подальше ;D


Добавлено:
Сообщение автоматически объединено:

Автору темы
А какие еще типы ссылок есть? Как ты их сам визуально отличаешь? Какие характерные особенности присущи тому или иному "типу" в твоей виртуальной пока классификации
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Fraks
Вы название раздела читаете!!! :Rulz:
 

Fever

Скриптер
Сообщения
308
Репутация
112
Код:
$Link = "http://site.com"
If StringLeft($Link, 7) <> "http://" Then
;ссылка не подходит
Else
FileWrite('file.txt', $Link)
EndIf


вы об этом? :wacko:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Fraks
Попробуйте так:
Код:
#include <IE.au3>
#include <File.au3>

Dim $aLinks[1]
$z = 0
$sUrl = 'http://www.google.ru/search?hl=ru&source=hp&q=autoit&aq=0&aqi=g10&aql=&oq=AutoIt&gs_rfai='

$oIE = _IECreate($sUrl)
$oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
	; В вашем случае:
	;If StringInStr($oLink.href, 'http://flyback.org.ru/privmsg.php?mode=post&u=') Then
	If StringInStr(StringLeft($oLink.href, 30), 'autoit') Then
		$z += 1
		ReDim $aLinks[UBound($aLinks) + 1]
		$aLinks[$z] = $z & '.  ' & $oLink.href
		$aLinks[0] = $z
	EndIf
Next
_IEQuit($oIE)
$aLinks[0] = @MDAY & '.' & @MON & '.' & @YEAR & '  ' & @HOUR & ':' & @MIN & ' - Найдено ссылок: ' & $z
$sFile = @ScriptDir & '\Ссылки_' & @MDAY & '_' & @MON & '_' & @HOUR & '-' & @MIN & '.txt'
_FileWriteFromArray($sFile, $aLinks)
 
Автор
Fraks

Fraks

Новичок
Сообщения
22
Репутация
1
Спасибо, уже решил проблему
 
Автор
Fraks

Fraks

Новичок
Сообщения
22
Репутация
1
Код:
#include <IE.au3>
#include <File.au3>
For $i = 0 To 1600 Step 200
$oIE = _IECreate("http://flyback.org.ru/memberlist.php?mode=joined&order=ASC&start=" & $i,0,0)
$oLinks = _IELinkGetCollection($oIE)
$file = FileOpen("people.txt",1)
For $oLink In $oLinks
	$link = $olink.href	if StringInStr($link, "http://flyback.org.ru/privmsg.php?mode=post&u") <> 0 Then
 FileWrite($file, $olink.href & @CRLF)	
Next	
Next	
$number = _FileCountLines("people.txt")MsgBox(4096,"Адреса","Найдено " & $number & " адресов")
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Fraks
А система при таком раскладе не тормозит? :shok:
Код:
For $i = 0 To 1600 Step 200
$oIE = _IECreate("http://flyback.org.ru/memberlist.php?mode=joined&order=ASC&start=" & $i,0,0)

Как-то всё мудрёно :wacko:
 
Автор
Fraks

Fraks

Новичок
Сообщения
22
Репутация
1
Garrett сказал(а):
Fraks
А система при таком раскладе не тормозит? :shok:
Код:
For $i = 0 To 1600 Step 200
$oIE = _IECreate("[url=http://flyback.org.ru/memberlist.php?mode=joined&order=ASC&start=]http://flyback.org.ru/memberlist.php?mode=joined&order=ASC&start=[/url]" & $i,0,0)

Как-то всё мудрёно :wacko:
Немного тормозит, но мне надо все ссилки получить. Разве можно иначе?
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Можно. Нужно в _IECreate() второй параметр выставить в '1' , что бы не открывать девять экземпляров IE, пусть даже вы их и не видите.
Или воспользоваться
Код:
_IEAttach() 
_IENavigate()


А вообще, если бы вы более чётко сформулировали свою задачу и описали её здесь, то вам бы обязательно помогли!
 
Автор
Fraks

Fraks

Новичок
Сообщения
22
Репутация
1
Ок, сейчас поставлю. Но я просто пользовался ф-цией _IEQuit и потом заново создавал окно. Но вы правы, сейчас сделаю так.А вобще задача такая:Мне нужно получить список всех пользователей форума и отослать им ЛС на счет одного мероприятия(Это не спам).
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Fraks
Мне нужно получить список всех пользователей форума и отослать им ЛС на счет одного мероприятия(Это не спам).
Хочется надеяться :smile:

Это делается проще.
Вы один раз запускаете IE, далее собираете все ссылки с первой страницы, после чего кликнете по ссылке с номером следующей страницы, и опять собираете ссылки, и т. д. пока ваш алгоритм не найдёт на последней странице ключевое значение которое выведет программу из цикла поиска ссылок и перемещения по страницам.
 
Автор
Fraks

Fraks

Новичок
Сообщения
22
Репутация
1
Да, серйозно=)Окей, спасибо, я так и сделаю
 
Верх