Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Parsowanie, prosze o pomoc bo juz niemam sily...
zee
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.08.2012

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


Witam....
Wypocilem cos takiego:

  1. <!-- xml version="1.0" encoding="UTF-8" -->
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <script type="text/javascript" src="http://view.binlayer.com/ad-54892.js"></script>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  7.  
  8. <meta http-equiv="refresh" content="9999 url=xxx">
  9.  
  10. </head>
  11. <body>
  12. <?php echo $utf8variable;?>
  13. <body>
  14. <html>
  15. <?php
  16. $url = 'http://panoramafirm.pl/komputery_sprzeda%C5%BC'; //adres strony do przeskanowania jako lancuch znakow
  17. $ch = curl_init();
  18. curl_setopt($ch, CURLOPT_URL,$url); // ustawienie urla
  19. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // zwróć w postaci zmiennej
  20. curl_setopt($ch, CURLOPT_TIMEOUT, 3);
  21. $result = curl_exec($ch); // wykonanie skryptu
  22. curl_close($ch);
  23.  
  24. $nazwa ='@<\/.* class="js-offerName addax addax-cs_hl_hit_company_name_click">(.*?)</a></h3></td>@is';
  25. $telefon ='@<span class="phone">(.*?)</a>@is';
  26. $adres ='@<div class="left js-offerAddress">(.*?)</div> <div class="clear">@is';
  27.  
  28. $ile = preg_match_all($nazwa, $result, $matches, PREG_PATTERN_ORDER);
  29. $ile2 = preg_match_all($telefon, $result, $matches2, PREG_PATTERN_ORDER);
  30. $ile3 = preg_match_all($adres, $result, $matches3, PREG_PATTERN_ORDER);
  31.  
  32. for ($i=0; $i<40; $i++) {
  33. echo ($matches[0][$i]) . '<br>';
  34. echo ($matches2[0][$i]) . '<br>';
  35. echo ($matches3[0][$i]) . '<br>';
  36.  
  37. // print_r ($matches2[0][$i]) . '<br>';
  38. }
  39. ?>


Adres i telefon pobierany jest dobrze ale nazwa juz nie.(albo niemam nic, albo cala strona)
Niemam pojecia jak to prawidlowo zapisac, prosze o pomoc


To czesc kodu z ktorego chce wyciagnac nazwe:
  1. ś</span> </li> </ul></div> </div> <div class="listingStandardLineArea">
  2. <div class="listingStandardLine"></div> </div>
  3. <div class="listingItem searchItem searchItem-newStandardNoOffer" id="itemListing-15" rel="oygnam_fsp">
  4. <div class="fill"> <table class="table"> <tbody> <tr> <td rowspan="3" class="logoArea"> </td>
  5. <td colspan="2" class="nameArea"><h3>
  6. <a href="http://panoramafirm.pl/mazowieckie,wola,warszawa,warszawa,okopowa,47/tremark_sp._z_o.o.-oygnam_fsp.html" class="js-offerName addax addax-cs_hl_hit_company_name_click"> Tremark Sp. z o.o.</a>
  7. <div class="alternateNamesInfo"> <span class="button js-AlternateNamesPopupBtn" rel="15">
  8. <div class="bgIcons questionMark">&nbsp;&nbsp;&nbsp;&nbsp;</div></span> </div> <div class="clear"></div>
  9. <div class="AlternateNamesPopup js-AlternateNamesPopup hidden" id="js-AlternateNamesPopup-15">
  10. <div style="margin-left: 138px;" class="arrow bgKrakFill"></div> <div class="AlternateNamesPopupTop">
  11. <div class="AlternateNamesPopupHeader">Inne nazwy</div> <div class="button js-close AlternateNamesPopupClose"></div> </div>
  12. <div class="AlternateNamesPopupMiddle"> <div class="AlternateNamesContainer">
  13. <a href="http://panoramafirm.pl/tremark">tremark</a> <a href="http://panoramafirm.pl/tremark/mazowieckie,,warszawa">tremark warszawa</a>
  14. </div> </div> <div class="AlternateNamesPopupBottom"></div> </div> <div class="clear"></div></h3></td> <td rowspan="3" class="pictureArea" width="158"> <div class="pictureArea"> <div class="inside"></div> </div> </td> </tr> <tr> <td class="contactArea"><div class="inside">
  15. <div class="addressArea"> <div class="left js-offerAddress">ul


interesuje mnie: Tremark Sp. z o.o.
p.s. jestem praktycznie zielony w tym ;/
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #2





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


http://stackoverflow.com/questions/3577641...s-html-with-php
Go to the top of the page
+Quote Post
zee
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.08.2012

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


i tak niebardzo wiem jak sie do tego zaprac...
moze cos nakierujesz ?
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #4





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Zadaj konkretne pytanie. Czego nie rozumiesz? Wykaż odrobinę inicjatywy.
Go to the top of the page
+Quote Post
zee
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.08.2012

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


Doszedlem do czegos takiego:

  1. <!-- xml version="1.0" encoding="UTF-8" -->
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <script type="text/javascript" src="http://view.binlayer.com/ad-54892.js"></script>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  7.  
  8. <meta http-equiv="refresh" content="9999 url=http://fotoswiat.com/test/2/index2">
  9.  
  10. </head>
  11. <body>
  12. <?php echo $utf8variable;?>
  13. <body>
  14. <html>
  15. <?php
  16. $url = 'http://panoramafirm.pl/artyku%C5%82y_dla_dzieci_detal'; //adres strony do przeskanowania jako lancuch znakow
  17. $ch = curl_init();
  18. curl_setopt($ch, CURLOPT_URL,$url); // ustawienie urla
  19. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // zwr w postaci zmiennej
  20. curl_setopt($ch, CURLOPT_TIMEOUT, 3);
  21. $result = curl_exec($ch); // wykonanie skryptu
  22. curl_close($ch);
  23.  
  24. $nazwa ='@<td colspan="2" class="nameArea"><h3>(.*?)</a>@is';
  25. $telefon ='@<span class="phone">(.*?)</a>@is';
  26. $adres ='@<div class="left js-offerAddress">(.*?)</div> <div class="clear">@';
  27.  
  28. $ile = preg_match_all($nazwa, $result, $matches, PREG_PATTERN_ORDER);
  29. $ile2 = preg_match_all($telefon, $result, $matches2, PREG_PATTERN_ORDER);
  30. $ile3 = preg_match_all($adres, $result, $matches3, PREG_PATTERN_ORDER);
  31.  
  32. for ($i=0; $i<26; $i++) {
  33. echo ($matches[0][$i]) . '</h3>';
  34. echo ($matches2[0][$i]) . '<br>';
  35. echo ($matches3[0][$i]) . '<br>';
  36. ?>



Dziala ok, pokazuje tylko to co chcialem...
Potrzebuje zapisac to do sql ? Nazwa, Adres, Telefon zapisuje sie tylko :
id imie nazwisko telefon
71 Array[26] Array[26] Array[26] dlaczego (IMG:style_emoticons/default/questionmark.gif)

SQL:

  1. $dodaj = "INSERT INTO uzytkownicy (imie,nazwisko,telefon) VALUES ('$matches[0][$i]','$matches2[0][$i]','$matches3[0][$i]')";
  2. mysql_query($dodaj) or die(mysql_error());
  3. mysql_close($polaczenie);


Ten post edytował zee 12.08.2012, 13:35:21
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #6





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Działa to zbyt wiele powiedziane. Ja bym powiedział że "przypadkiem ruszyło".
Tak się tego nie robi, musisz sparsować dokument. Link z narzędziami jest w moim pierwszy poście.

Ten post edytował wNogachSpisz 12.08.2012, 13:37:25
Go to the top of the page
+Quote Post
zee
post
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.08.2012

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


To ma byc jakos tak (IMG:style_emoticons/default/questionmark.gif)

  1. <?
  2. # create and load the HTML
  3. include('simple_html_dom.php');
  4. $html = new simple_html_dom();
  5. $html = file_get_html('http://panoramafirm.pl/agroturystyka');
  6.  
  7.  
  8. $element = $html->find('td text');
  9.  
  10.  
  11.  
  12. //echo $html->save();
  13. echo $html;
  14. ?>


niewiem co ma byc tutaj: ('td text') jak zapisac to czego szukam

Ten post edytował zee 12.08.2012, 14:52:02
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #8





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Wybrałeś prawdopodobnie najgorszą możliwą biblitekę, ale tak, o to mniej więcej chodzi.
Go to the top of the page
+Quote Post
zee
post
Post #9





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.08.2012

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


To moze podaj z czym bedzie latwiej
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #10





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Po raz kolejny, link masz w moim pierwszy poście.
Go to the top of the page
+Quote Post
zee
post
Post #11





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.08.2012

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


wNogachSpisz jak masz tak odpisywac i nabijac posty to nie pisz lepiej nic bo nic mi nie pomagasz...



wNogachSpisz tobie juz dziekuje...

Ten post edytował zee 12.08.2012, 15:13:46
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #12





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Nie moja wina, że nie potrafisz kliknąć w link i przeczytać ze zrozumieniem kilku zdań po angielsku.

Troche ciężko się rozmawia gdy edytujesz post dopisując pytanie po czasie.
Ktoś kto będzie czytał ten topic pomyśli że świadomie je ignoruje (IMG:style_emoticons/default/sad.gif)

  1. $element = $html->find('td text');
To rześ się napracował. Oczekujesz że ktoś napisze resztę za Ciebie?

Przeczytałeś manual simple_html_dom?

Ten post edytował wNogachSpisz 12.08.2012, 15:30:43
Go to the top of the page
+Quote Post
zee
post
Post #13





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.08.2012

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


Napisales ze wybralem najgorsza biblioteke, nieznam sie na tym wiec moze bys podal cos co bedzie latwiejsze a ty caly czas wracasz do linka z ktorego zaduzo nie rozumiem.

Potrzebuje jakies przyklady co i jak, niechce gotowca, chce to zrozumiec jakos.

Napisalem w pierwszym poscie co udalo mi sie zrobic, pisales ze nie tak to sie robi to jak...

tylko link i link

dr.google

dlaczego to co napisalem w 1 i 2 poscie n ie moze byc ?

Ten post edytował zee 12.08.2012, 15:42:17
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #14





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Cytat(zee @ 12.08.2012, 16:33:51 ) *
Napisales ze wybralem najgorsza biblioteke, nieznam sie na tym wiec moze bys podal cos co bedzie latwiejsze a ty caly czas wracasz do linka z ktorego zaduzo nie rozumiem.

Jak można się nie znać na przeczytaniu kilku zdań? Pod linkiem jest opisane która bibliteka gorsza, która lepsza. Powiedz, na czym tu trzeba się znać? 8 letnie dziecko by sobie z tym poradziło.

Cytat(zee @ 12.08.2012, 16:33:51 ) *
Potrzebuje jakies przyklady co i jak, niechce gotowca, chce to zrozumiec jakos.

W dokumentacji nie ma przykładów?

Cytat(zee @ 12.08.2012, 16:33:51 ) *
Napisalem w pierwszym poscie co udalo mi sie zrobic, pisales ze nie tak to sie robi to jak...

tylko link i link

dr.google

Dokładnie, tak się tego nie robi.
Link który podałem zawiera kompletną odpowiedzieć w dodatku świetnie przeredagowaną. Nie widzę sensu kopiowania internetu, choć wiem że ten sport ma wielu entuzjastów.

Ten post edytował wNogachSpisz 12.08.2012, 15:45:30
Go to the top of the page
+Quote Post
klocu
post
Post #15





Grupa: Zarejestrowani
Postów: 291
Pomógł: 45
Dołączył: 21.08.2007

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


Ja stoję po stronie @wNogachSpisz. Dlaczego?

Wybrałeś bibliotekę - jaka by ona nie była; po przeczytaniu kilku postów już widzę, że nie zadałeś sobie nawet trudu zajrzenia w dokumentację wybranej przez ciebie biblioteki gdzie masz rozpisane przykłady; wziąłeś pierwszy od góry rozpisany kawałek kodu źródłowego.
Próbujesz robić to przez wyrażenia regularne - raz się uda, dwa razy nie. Zmienią strukturę strony i znów będziesz kleił wyrażenia bo nie działa. A z poziomu struktury szybciutko dojdziesz do pożądanych rezultatów.

Cytat
tylko link i link

Tak tylko link i link, bo gdzieś zostało to już wyjaśnione i skoro tamci wiedzą o co chodzi to trzeba się uczyć od właśnie takich ludzi.

Cytat
dlaczego to co napisalem w 1 i 2 poscie n ie moze byc ?

Bo to co napisałeś na siłę próbuje być stroną o składni przypominającej HTML, a w rzeczywistości ma jedynie parsować dane i wrzucać do tabelek mysql'owych. Zatem dorabianie do tego "dodatków" jest bez sensu bo nie wnoszą one nic w działanie.

Cytat
dr.google && bo juz niemam sily...

Wiedza i umiejętności nie spadają z nieba - jeśli nie masz cierpliwości do tej roboty, nie masz czasu i siły żeby poczytać manuale, przykłady skryptów porozrzucane po sieci - daruj sobie tę robotę bo stracisz czas, a nie osiągniesz satysfakcjonujących efektów. Jak coś robić to konkretnie.
Tłumaczenie że jest się zielonym nikogo nie usprawiedliwia - nawet zielony, który chce się nauczy.

Ten post edytował klocu 12.08.2012, 16:07:04
Go to the top of the page
+Quote Post
zee
post
Post #16





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.08.2012

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


Napisalem swoje:
  1. <!-- xml version="1.0" encoding="UTF-8" -->
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <script type="text/javascript" src="http://view.binlayer.com/ad-54892.js"></script>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  7.  
  8. <meta http-equiv="refresh" content="9999 url=http://fotoswiat.com/test/2/index2">
  9.  
  10. </head>
  11. <body>
  12. <?php echo $utf8variable;?>
  13. <body>
  14. <html>
  15. <?php
  16. $url = 'http://panoramafirm.pl/artyku%C5%82y_dla_dzieci_detal'; //adres strony do przeskanowania jako lancuch znakow
  17. $ch = curl_init();
  18. curl_setopt($ch, CURLOPT_URL,$url); // ustawienie urla
  19. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // zwr w postaci zmiennej
  20. curl_setopt($ch, CURLOPT_TIMEOUT, 3);
  21. $result = curl_exec($ch); // wykonanie skryptu
  22. curl_close($ch);
  23.  
  24. $nazwa ='@<td colspan="2" class="nameArea"><h3>(.*?)</a>@is';
  25. $telefon ='@<span class="phone">(.*?)</a>@is';
  26. $adres ='@<div class="left js-offerAddress">(.*?)</div> <div class="clear">@';
  27.  
  28. $ile = preg_match_all($nazwa, $result, $matches, PREG_PATTERN_ORDER);
  29. $ile2 = preg_match_all($telefon, $result, $matches2, PREG_PATTERN_ORDER);
  30. $ile3 = preg_match_all($adres, $result, $matches3, PREG_PATTERN_ORDER);
  31.  
  32. for ($i=0; $i<26; $i++) {
  33. echo ($matches[0][$i]) . '</h3>';
  34. echo ($matches2[0][$i]) . '<br>';
  35. echo ($matches3[0][$i]) . '<br>';
  36. ?>



napisaliscie ze tak sie nie robi i odsylacie do czegos innego, czegos czego nie ogarniam

Jak zrobic zeby znajdowalo wszystko, albo np. 20 bo pokazuje tylko pierwsze


  1. <?
  2. $start = microtime(true);
  3. $data = file_get_contents('file.html');
  4. include('htmlparser/htmlparser.inc');
  5. $parser = new HtmlParser($data);
  6. $elements = array();
  7. while($parser -> parse()){
  8. if($parser->iNodeAttributes['class'] == "title" && strlen(trim($parser -> iNodeValue)) > 0)
  9. $element['title'] = trim($parser -> iNodeValue);
  10.  
  11. if($parser->iNodeAttributes['class'] == "tely" && strlen(trim($parser -> iNodeValue)) > 0)
  12.  
  13. $element['desc'] = trim($parser -> iNodeValue);
  14.  
  15. if(isset($parser->iNodeAttributes['href']) && strlen(trim($parser -> iNodeValue)) > 0){
  16.  
  17. $element['link'] = trim($parser -> iNodeValue);
  18. $element['url'] = trim($parser -> iNodeAttributes['href']);
  19. }
  20.  
  21. if(count($element) == 4){
  22.  
  23. $elements[] = $element;
  24. $element = array();
  25. }
  26. }
  27. foreach($elements as $element){
  28.  
  29. //echo "Title: \t".$element['title']."\n";
  30. echo "Nazwa: \t". $element['link']."\n";
  31. echo "telefon: \t".$element['desc']."\n";
  32. // echo "Url: \t".$element['url']."\n";
  33. // echo '-----'."\n";
  34. }
  35.  
  36. $end = microtime(true);
  37. //echo ($end -$start);
  38. ?>
Go to the top of the page
+Quote Post
--Zee--
post
Post #17





Goście







pomoze ktos ?
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: 3.10.2025 - 02:34