Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Automatyzacja danych w iMacros
Forum PHP.pl > Forum > Przedszkole
cm812
Witam,

To mój pierwszy post i nie ukrywam wśród ludzi, którym nie dorastam do pięt z racji mojej wiedzy o programowaniu itp.
Ale mam problem i znając różne fora wiem, iż można na nich liczyć na życzliwych userów - i takąż nadzieję mam i tu wink.gif.

Problem mój polega na pobraniu pewnej liczby stron na dysk począwszy od np 60001 do 60100 i aby się te strony najlepiej
zapisały na dysku z nazwą odpowiadającą wpisanemu numerowi - jeśli to jest w ogóle możliwe.
Do tej pracy zaciągnąłem program iMacros jako dodatek do FF i sam coś nie mając pojęcia stworzyłem:

VERSION BUILD=7210419 RECORDER=FX
TAB T=1
URL GOTO=http://195.116.105.17
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:IWEDITNREDG CONTENT=65000
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=ID:IWBUTTONSEARCH
SAVEAS TYPE=CPL FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}
TAG POS=1 TYPE=IMG ATTR=ID:XPMIWNAVIGATOR1_nav13
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:IWEDITNREDG CONTENT=65001
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=ID:IWBUTTONSEARCH
SAVEAS TYPE=CPL FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}
TAG POS=1 TYPE=IMG ATTR=ID:XPMIWNAVIGATOR1_nav13
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:IWEDITNREDG CONTENT=65002
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=ID:IWBUTTONSEARCH
SAVEAS TYPE=CPL FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}
TAG POS=1 TYPE=IMG ATTR=ID:XPMIWNAVIGATOR1_nav13

fajnie to wygląda ale:
1. musiałbym wpisać prawie 100 cyfr z ręki (od 60001 do 60100) a chciałbym aby gdzieś wpisać tylko liczbę od i do.
2. zapisuje mi to do plików nie z nazwą kolejnej cyfry - to teoretycznie można później zmienić w TotalCommander.

Czy w ogóle można tak napisać skrypt aby zadać mu pewien zakres i aby on sam sobie wprowadzał kolejne numery i ściągał te strony
bo ew. zapisywanie ich pod nazwą wpisanego numeru to już pełnia szczęścia by była.

Ew. proszę o info czy to jest wykonalne i gdzie może szukać pomocy.

Pozdrawiam serdecznie i liczę choć na małą informację
CuteOne
w PHP to kilka linijek ;p problem to znać adresy stron.. ja podam ci przykład z uzyciem tablic

  1.  
  2. $array = array('wp.pl', 'onet.pl', 'interia.pl' itd..);
  3.  
  4. for($i = 0; $i < 10; $i++) {
  5.  
  6. $handler = file_get_contents('http://www.'.$array[$i]);
  7. file_put_contents('folder/'.$i.'.html', $handler);
  8. }
cm812
Witaj,

Dzięki za odzew wink.gif
co do adresu stron to nie rozumiem za bardzo o co chodzi, bo w moim przypadku jest to jedna stronka http.
W tym przykładzie co podałem chodzi mi jak w programie iMacros (tym darmowym pod firefox'em) zapętlić pewna czynność.

dokładnie z mojego przykładu to zrobić tak aby:
1. wpisać pewien zakres liczb np. 60001 do 60100
2. na żądanej stronce aby w odpowiednim miejscu same się te cyfry kolejno wpisywały i pobierały stronkę na hdd.
3. o opcji zapisywania/pobierania stronki zgodnie z wyszukiwaną liczba to już nie marzę wink.gif.

jak to zrobić aby tę część mojego makro jakoś zautomatyzować/zapętlić:

TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:IWEDITNREDG CONTENT=65000
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=ID:IWBUTTONSEARCH
SAVEAS TYPE=CPL FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}
TAG POS=1 TYPE=IMG ATTR=ID:XPMIWNAVIGATOR1_nav13

to mi działa ale musiałbym 100 razy napisać te wiersze wprowadzając kolejne cyfry - co w przypadku mojej niewiedzy lepszym okazało by się
robienie tego z palca a nie szukanie automatu.

Ktoś mi już pomógł w inny sposób ale niestety musiałbym posiadać pełną wersję programu (nie dodatku do FF) iMacros. Fajnie to zrobił bo wpisuje się
zakres liczbowy i program się uruchamia, ściąga stronkę z numerem i ja zapisuje, ponownie się otwiera ściąga kolejną i ją zapisuje itd.
Problemem jest, że nie robi tego przy jednym uruchomieniu tylko otwiera i zamyka.
Dla mnie bardziej poręczny byłby iMacros pod FF ale to i tak z braku całkowitej wiedzy w temacie - dla mnie to po prostu Chiński wink.gif
CuteOne
Nie mialem do czynienia z iMacrosem ale to co mówisz można zrobić poprzez cURL'a poczytaj sobie o nim na google smile.gif
cm812
dzięki @CuteOne ale kompletnie nie znam się na tym, co wcześniej przyznałem ;(
Tak w duchu myślałem, że nie ma problemu aby ktoś kumaty w temacie ściągnął sobie tego iMacros'a i zobaczył po skopiowaniu co te moje wypociny robią i...
dam sobie uciąć, że ktoś z podstawową nawet wiedzą dopisze kilka linijek i będzie to działało.

Niestety jeśli będę musiał pojąć język php czy inny to raczej z racji wieku odpuszczę wink.gif można nie dożyć!
I pozostanie mi ręczne wchodzenie na stronkę wpisywanie kolejnego numeru i zapisywanie stronki na dysk, praca mozolna
ale nie mam chyba wyjścia.
no może jeśli ktoś wgra na moment iMacros'a i sie zaśmieje jaki to banał to mi słońca przychyli, ale to już tylko od Was zależy.

pozdr.

byłem na stronce curl.haxx.se - ale aż się wystraszyłem, wink.gif
Fifi209
A tutaj curl byłeś? smile.gif
Szeszek1992
Polecam zapoznać się z simple_html_dom.
W jakiejś pętli wywołasz sobie po prostu:
  1. $html = file_get_dom('http://www.google.com/');
  2. $html->save('JakisAdresGenerowanyNaPetli.html');
  3. $html->clear();
  4. unset($html);


Pozdrawiam.
cm812
Panowie, dzięki ale jak wspomniałem nie rozumiem/umiem programować, nawet nie wiem jak uruchomić przykład @Szeszek1992 ;(
to smutne ale w moich czasach wszechjedyny był język rosyjski.

Dla mnie jedyną pomocą jest napisanie co i jak abym mógł zautomatyzować moją pracę. Mimo szczerych chęci ciężko mi studiować teraz języki programowania.

Jak ktoś da radę to zapraszam na stronkę http://195.116.105.17
proszę wpisać nr EDG - np. 60000, dać "szukaj" i otwartą stronę zapisać na hdd, najlepiej pod nazwą "60000"
i teraz potrzebuje takich zapisów od nr 60000 do 60200 - tu tkwi problem, na razie bo sam nie wiem kiedy będę musiał zapisać kolejne pule.

da sie to zrobić w jakimś automacie czy muszę wszystko ręcznie?

ot cały problem
Fifi209
Chętnie bym pomógł, lecz...

Error message raised by the application: Unknown browser type.
cm812
questionmark.gif? u mnie działa, może
http://195.116.105.17/

pomoże wink.gif
gac3k
Nie chce Cię martwić ale ciężko Ci tu będzie znaleźć kogoś kto Ci to napisze za darmo smile.gif

To nie będzie żaden skomplikowany skrypt, bo właściwie wystarczy CURL i pętla, mogę cię tak nakierować

[php]
<?php
$range = range(60000,60200); //tutaj wstawiasz przedział
foreach($range as $current)
{
//tutaj cała operacja przesłania danych z curla smile.gif
%
cm812
"nieskomplikowany skrypt" czyli da się, tyle że za kasę - widać wszędzie komercja i żądza pieniądza, cóż.

a ile taki skrypt by kosztował, wraz z pomocą w odpaleniu?

pozdr

dzięki @gac3k za rozjaśnienie dlaczego tak skąpo z pomocą - po prostu nie wiedziałem,
ja jak tylko coś potrafię to się dzielę i pomagam - ponoć to wraca 2x więcej, ponoć ...

szkoda, ale też nie bardzo wiem jak zacząć korzystać i z Twojej pomocy, czy wkleić te wersy (i czy w takiej formie)
do moich linijek z iMacros, czy po prostu ściągnąć "curl'a" i uczyć się angielskiego.
thek
Myślę, że ten temat Ci ciutkę rozjaśni sytuację:
http://stackoverflow.com/questions/5634450...very-other-href

Z początku myślałem, że da się to rozwiązać z użyciem LOOP, ale jak widać iMacros nie mają jako takiego wsparcia dla pętli i pozostaje posiłkować się kombinacją iMacros+JS, tak jak w tamtym temacie (zobacz przykład). Myślę, że chyba o to Ci chodzi...
cm812
nic z tego, jestem po prostu kiep wink.gif
nie kumam tego języka i za cholerę nie umie sobie poradzić z Waszymi pomocami, a szkoda bo się poświęcacie.

Jedyne co mi połowicznie wyszło, to napisanie kilku wierszy w iMacros pod FF (bo jest free) ale plik, który mi się ściąga nie jest już stronką html
a plikiem *.png - dużo lżejszym. Z racji takiej, że nie umiałem zrobić tak aby aby program sam zapisywał mi zgodnie z nr który wpisałem, zrobiłem to ręcznie w excell'u.
Może jest jakieś magiczne słowo czy komenda ale, że go nie znam zrobiłem jak umiałem. Efekt jest prawie taki jaki chciałem - dużo pracy z wpisywaniem i nie wiem jak duże może być to makro.

wyszło tak:

VERSION BUILD=7220523 RECORDER=FX
TAB T=1
URL GOTO=http://195.116.105.17
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:IWEDITNREDG CONTENT=44445
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=ID:IWBUTTONSEARCH
SAVEAS TYPE=PNG FOLDER=* FILE=44445
TAG POS=1 TYPE=IMG ATTR=ID:XPMIWNAVIGATOR1_nav13
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:IWEDITNREDG CONTENT=44446
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=ID:IWBUTTONSEARCH
SAVEAS TYPE=PNG FOLDER=* FILE=44446
TAG POS=1 TYPE=IMG ATTR=ID:XPMIWNAVIGATOR1_nav13

to oczywiście wycinek bo te dane wrzucam do excela i kopiuję tak aby mi zmieniało na kolejne cyfry, problem jest też taki, że zmienia mi stałą_nav13!
ale już coś się dzieje wink.gif
Oczywiście wolałbym coś prostszego i aby nie wymagało to takiego wkładu ale cóż, mam tylko iMacros pod FF i o wersji komercjalnej niestety muszę pomarzyć!

Może coś jeszcze możecie pomóc ale wiedzcie, technicznie i ogólnie nie kumam angielskiego - wiem, wstyd.
Gość
Być może przestarzałe już, ale na przyszłość jeśli ktoś chce pobrać stronę całą nie potrzeba używać iMacros wystarczy program do kopiowania pełnych stron www - teleport pro.
w iMacrosie również szukam zapętlenia ale nie widzę opcji
chinek
Witam.
Pewnie już za późno, ale napiszę odp smile.gif
Kod
VERSION BUILD=7220523 RECORDER=FX
TAB T=1
URL GOTO=http://195.116.105.17
SET !Loop 44445
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:IWEDITNREDG CONTENT={{!Loop}}
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=ID:IWBUTTONSEARCH
SAVEAS TYPE=PNG FOLDER=* FILE={{!Loop}}

I teraz tak:
chcesz zrobić np od 44445 do 50000 tak więc w kodzie musisz ustawić od ilu ma sie zaczynac (SET !Loop 44445) a w oknie "Powtórz makro" wpisujesz w polu max 50000 i klikasz button "Odtwórz(Pętla)".
Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.