Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Jak wyciągnąć dane ze strony html ?
xPatryk
post
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 9.01.2004

Ostrzeżenie: (20%)
X----


Witam

Aktualnie tworzę baze ogłoszeń Jeździeckich w ramach Jeździeckiego Centrum Informacyjnego www.QnWortal.com ---

http://www.qnwortal.com/modules.php?name=ogloszenia

Ogólnym celem Jeździeckiego Centrum Informacyjnego jest ułatwienie koniarzom dostępu do informacji. W Internecie pełno jest bezwartościwych stron, na których znajduje się pelno dziwnych i nieprzemyślanych tekstów/porad...

Z tego względu staramy się selekcjonować te materiały, które są przydatne dla społeczeństwa koniarzy.

Podobnie jest z ogłoszeniami... Po co użytkownik ma przeglądać setke stron z 3-4 ogłoszeniami, skoro wszsytkie może mieć w zasięgu 2 kliknięć myszką (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?

Tu pojawia się problem...

Jak aktualizować setki ogłoszeń..

Dlatego też chcę stworzyć skrypt w php, który "pozbiera" ogłoszenia z innych końskich stron i umieści je w bazie...

Ogólnie ma to działać na zasadzie:

1) uruchomienie skryptu raz dziennie przy pierwszym wywolaniu bazy
2) polaczenie sie ze stronami z listy, otwarcie strony (fopen) i sprawdzenie czy pojawily sie nowe ogłoszenia
3) jeśli tak, pobranie pól ogłoszenia według kryterium dla każdej strony, np . (imie, nazwisko, miejscowosc, kontakt, tytul, tresc, zdjecie )
4) umieszczenie danych w bazie mysql wraz z flaga aktywne
5) wyslanie na podany w ogloszeniu email zapytania, czy uzytkownik wyraza zgode na umieszczenie ogloszenia w Jeździeckim Centrum Informacyjnym
6) po kliknieciu w link flaga zmieniana jest na 1
7) nowe ogloszenie jest wyswietlane w bazie...

Tylko za bardzo nie wiem jak zrealizowac punkty 2 i 3, tak zeby otrzymac proste zmienne, które będę mógł umieścić w bazie


Pozdrawiam i proszę o pomoc
Patryk
Go to the top of the page
+Quote Post
rzseattle
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Polaczenie ze wszystkimi stronami to maly pryszcz. Gorzej ze na kazda z nich ma inny format danych. Bedziesz musial uzywac wyrazen regularnych do wyciagania danych. W przypadku gdy skanujesz jedna strone to nawet luz - gdy piec to rzeznia ale nigdy w zyciu nie uda ci sie wyciagac wynikow z setek stron. Jesli by nikt nigdy nie zmienial ich formy to moze wreszcie napisalbys parsery do kazdej strony ale tak nie jest i napewno nie bedzie. Po jakims czasie poprostu twoja witryna przestala by dzialac.

Jesli jednak upierasz sie przy swoim to przekazuje skrypt ktory kiedys umiescil w moim temacie castor

[php:1:4c66245d58]<?php
$adres="http://www.wp.pl/r/tg";
$host="www.wp.pl";
$jestLocation=true;
while($jestLocation){
$content="";
$port="80";

$fp = fsockopen($host, $port, &$ErrNo, &$ErrStr);
if (!$fp) {
die ("$ErrNo $ErrStr");
}else{

fputs($fp, "GET {$adres} HTTP/1.1rn");
fputs($fp, "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,*/*rn");
fputs($fp, "Accept-Language: dern");
fputs($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)rn");
fputs($fp, "Connection: closern");
fputs($fp, "Host: {$host}rn");
fputs($fp, "rn");

while ($buf=fread($fp,1024)) {
$content.=$buf;
}
}

fclose($fp);
if(eregi("Location: (.*)Connection:(.*)",$content,$rgs)){
$adres=chop($rgs[1]);
unset($rgs);
eregi("http://(.*)/",$adres,$rgs);
$host=$rgs[1];
continue;
}else if(eregi("<!-- srodkowa kolumna -->(.*)<!-- srodkowa kolumna koniec -->", $content, $rgs)){
$content=$rgs[0];
$jestLocation=false;
}
}

echo "$content";
?>[/php:1:4c66245d58]

kiedys ten skrypt byl dla mnie czarna magia (a ch te wspomnienia). Niewiem czy dalej dziala bo od tego czasu wp zdazylo przejsc na XHTML i nie jestem pewien czy nie pozmieniali znacznikow srodkowej kolumny, potraktuj go wiec jako pomoc naukowa i przyklad tego ze te skrypty (konkretnej wyrazenia) po jakim czasie sie deaktualizuja.
Go to the top of the page
+Quote Post
xPatryk
post
Post #3





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 9.01.2004

Ostrzeżenie: (20%)
X----


Hmmm...

Skrypt całkiem całkiem, tylko chodzi mi o to, aby pobierać treści powtarzające się - np.


Kod
Imię: Jan  Nazwisko: Kowalski <br>

Imię: Tomasz Nazwisko: Jakiś <br>

...


Tak, aby skrypt zatrzymywał się po wystąpieniu jakiegoś słowa, i wyświetlał każde pole osobno ...
np pobiera ciąg od Imię: do Nazwisko i zapisuje je jako zmienną imię, wtedy mogę wpisać je do bazy, pozniej pobiera dane od Nazwisko: do znacznika <br> i zapisuje je jako zmienna $nazwisko (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) i dopiero przechodzi do nastepnej lini, gdzie sytuacja się powtarza :|

Tylko jak by to zrobic (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) :?: :!: :idea:
Go to the top of the page
+Quote Post
zalew
post
Post #4





Grupa: Zarejestrowani
Postów: 407
Pomógł: 0
Dołączył: 24.10.2002
Skąd: warszawa

Ostrzeżenie: (0%)
-----


Cytat
Jesli by nikt nigdy nie zmienial ich formy to moze wreszcie napisalbys parsery do kazdej strony ale tak nie jest i napewno nie bedzie

on ma na mysli chyba, ze bedzie te ogloszenia pobieral legalnie a nie, ze qnportal to zlodzieje i beda ssali tresc na ktora wlasciciele innych stron sobie zapracowali.. tak wiec ten problem chyba odpada...
Go to the top of the page
+Quote Post
xPatryk
post
Post #5





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 9.01.2004

Ostrzeżenie: (20%)
X----


Cytat
qnportal to zlodzieje i beda ssali tresc na ktora wlasciciele innych stron sobie zapracowali


uuuu...

Złodziejami to raczej nie jesteśmy i ssać cudzej treści, na którą sobie ktoś zapracował nie zamierzamy...

Myślałęm, że cel opisałem w miare dokładnie.. Ponadto autor strony nie posiada praw autorskich do ogłoszeń. Prawa takowe posiada autor ogłoszenia, więc skrypt będzie wysyłał maila z zapytaniem o zgode umieszczenia :| więc złodziejami raczej nie jesteśmy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) P
Go to the top of the page
+Quote Post
zalew
post
Post #6





Grupa: Zarejestrowani
Postów: 407
Pomógł: 0
Dołączył: 24.10.2002
Skąd: warszawa

Ostrzeżenie: (0%)
-----


spoko, nie oskarzam, ale zapotrzebowanie na takie skrypty mnie co raz bardziej przeraza :)
Go to the top of the page
+Quote Post
xPatryk
post
Post #7





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 9.01.2004

Ostrzeżenie: (20%)
X----


Mogę Cię zapewnić, że jego celem nie będzie kradnięcie tekstów z różnych stron - do tego wystarczyłby mi powyzszy skrypt, albo CTRL + C i CTRL + V (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Pozdrawiam
Patryk
Go to the top of the page
+Quote Post
rzseattle
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Cytat
Ponadto autor strony nie posiada praw autorskich do ogłoszeń. Prawa takowe posiada autor ogłoszenia, więc skrypt będzie wysyłał maila z zapytaniem o zgode umieszczenia  więc złodziejami raczej nie jesteśmy P


Jak bys probowal pobierac ogloszenia z mojej strony to:
1) Uznal to za zlodziejstwo i szachrajstwo
2) Uniemozliwil bym twojemu skryptowi pobieranie danych z mojej strony
3) Wyslal bym wszystkim zaprzyjaznionym servisa maila z powiadomieniem ze stosujesz takie praktyki i jak je ukrocic

Dlaczego?
1) Wykorzystujesz popularnosc mojej strony aby osiagnac DLA SIEBIE okreslone kozysci
2) Do tego odciagasz uzytkownikow od mojej stony wysylajac im darmowa reklame swojej strony
3) Nie zgodzilem sie na twoje praktyki a ty bezczelnie jedziesz wyrazeniem po mojej stronce i wyciagasz dane ktore byly przeznaczone dla ludzi chcacych poszukac jakiejs oferty a nie dla ciebie


Ta wypowiedz traci waznosc w momecie gdy autor servisu zgadza sie na takie praktyki (bardzo watpie czy sie ktokolwiek zgodzi). Ale wtedy zainteresujcie sie zdalnym wywolywaniem uslug np SOAP.
Go to the top of the page
+Quote Post
xPatryk
post
Post #9





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 9.01.2004

Ostrzeżenie: (20%)
X----


buuu...
Dlaczego ludzie oskarżają nas o jakieś dziwne interesy (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) cóż za przykre insynuacje (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) ((

jak już wspomniałem, są to zaprzyjaźnione, zazwyczaj małe stronki, których autorzy wyrażają zgodę

Cytat
ssać cudzej treści, na którą sobie ktoś zapracował nie zamierzamy..


co do korzysci, moja działalność nie przynosi mi żadnych korzyści, robię to z poczucia obowiązku (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) (zresztą poczytaj FAQ, o autorze, to się wszystkiego dowiesz (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) P)
Go to the top of the page
+Quote Post
rzseattle
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

Ostrzeżenie: (0%)
-----


No dobra. Pzekonales mnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

Do wyciagania odpowiednich danych potrzebna ci jest wiedza ktora znajdzisz tutaj + skrypt ktory zacytowalem. Zanim zabierzesz sie za kodowanie spytaj autora strony czy nie moglby udostepnic specjalnie dla ciebie pliku ktory udostepnia dane w okreslonym formacie. Jesli wszyscy sie zgodza to zaoszczedzisz sobie duzo pracy. Ponadto takie dane mogly by byc udostepniane w formie dokumentu XML co ulatwi ci sprawe o tyle ze mozesz wykozystac gotowe parsery XML do ich odczytu.
Go to the top of the page
+Quote Post
jureusz
post
Post #11





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 16.03.2004

Ostrzeżenie: (10%)
X----


Autorzy sie zgadzaja bo nie placa za ilosc wypalonych danych na swoich kontach ... To sie z pewnoscia zmieni ... kwestia czasu. Poki co wszyscy sa przyzwyczajeni, ze za nic nie trzeba placic ...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 14:46