Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Sklejenie adresu WWW ze strony na podstawie zawartości w niej


Rekomendowane odpowiedzi

Opublikowano

Cześć, otóż chcę pobrać pewną stronę. Zawsze korzystałem z Teleport VLX, jednak tym razem nie uda się tego pobrać.

 

Treść strony to wyłącznie nazwy plików + rozszerzenie. Wystarczy skopiować jedną nazwę, wkleić ją do adresu i wtedy pobiera się plik. Niestety nie ma tam <a href>, tylko jest jako <li>'nazwa_pliku.rozszerzenie'</li>. Apostrof ' nie wchodzi w skład nazwy pliku. Od razu chcę napisać, że na tej stronie są jedna pod drugą z ponad tysiąc takich nazw, może nawet więcej. W skrypcie html są natomiast w jednej linii.

 

Potrzebuję przez skrypt Autoit:

 

 - pobrać kod strony

 - oddzielić <li> oraz apostrofy od nazwy pliku wraz z rozszerzeniem

 - do adresu strony dodać slash / oraz oddzieloną nazwę pliku z rozszerzeniem

 - po sklejeniu adresu pobrać plik

 - powtórzyć tą czynność, dopóki wszystkie pliki nie zostaną pobrane

 

Dobrze by było, gdyby program np. w Tray'u wysyłał dymki np. ile plików już pobrano z iluś. Oraz gdyby informował o błędach, szczególnie w pracy programu i przy pobieraniu plików.

 

Dlaczego w Autoit? Kilka lat temu robiłem w nim boty, więc bez problemu poradzę sobie z dostosowaniem skryptu pod siebie. Dzięki za pomoc

Opublikowano

1. _IEDocReadHTML ( Objekt IE) zapisujesz do pliku ( aby aplikacji nie przymulało).

#include <IE.au3>

$oIE = _IECreate ("Adres strony")
_IELoadWait ($oIE)
FileWriteLine ("strona.txt",_IEDocReadHTML ($oIE)) 

2. _StringBetween (Do FileRead) ; 

$nazwa = _StringBetween (FileRead ('strona.txt',"<li>'", "<li>'")

3. Pętla powtarzająca czynność dopóki nie będzie błędu

$n = 1
$adres = "adres strony"
While Not @
_IENavigate ($oIE,$adres & "/" & $nazwa[$n])
_IELoadWait ($oIE)
Sleep (1000);Dajmy mu odpocząć ;P
$n+=1
WEnd

Tysiące lat wojen, ani jednego dnia pokoju,

pytam czy to skończy się.

 

Zegarek BB

Opublikowano

 

1. _IEDocReadHTML ( Objekt IE) zapisujesz do pliku ( aby aplikacji nie przymulało).

#include <IE.au3>

$oIE = _IECreate ("Adres strony")
_IELoadWait ($oIE)
FileWriteLine ("strona.txt",_IEDocReadHTML ($oIE)) 

2. _StringBetween (Do FileRead) ; 

$nazwa = _StringBetween (FileRead ('strona.txt',"<li>'", "<li>'")

3. Pętla powtarzająca czynność dopóki nie będzie błędu

$n = 1
$adres = "adres strony"
While Not @
_IENavigate ($oIE,$adres & "/" & $nazwa[$n])
_IELoadWait ($oIE)
Sleep (1000);Dajmy mu odpocząć ;P
$n+=1
WEnd

 

Pewnie działa, tylko w moim wypadku strona jest za duża - zwiesza Internet Explorer. Może można to ominąć stosując np. InetGet?

Opublikowano

@vance14

InetGet używa IE ;x

Tylko że pobiera a nie uruchamia w przeglądarce. No to możesz zrobić to samo, tylko wymienić funkcje z IE na Inet'y

Jak wspomniał IZZER możesz poczytać o WinHTTP

Tysiące lat wojen, ani jednego dnia pokoju,

pytam czy to skończy się.

 

Zegarek BB

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...