Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Wyciągnięcie danych
Forum PHP.pl > Forum > Przedszkole
uirapuru
Hej!

Od razu mówię, że akcja jest kompletnie legalna i mam przyzwolenie na wykonanie powyższej czynności smile.gif

A więc jest sobie na necie u jednego człowieczka katalog produktów. Duzy katalog, na 10 tys pozycji. Dostęp do opisu każdej z tych pozycji łatwo uzyskać przez wejście np na www.katalog.net/card.php?id=numer, gdzie zmieniajac 'numer' od 0 do 10000 generowany jest kod html, dla przykladu taki:

  1. <TITLE>katalog produktów</TITLE>
  2. </HEAD>
  3. <BODY BGCOLOR="#6A6F6B">
  4. <TR>
  5. <TD VALIGN="top">
  6. <TR>
  7. <TD VALIGN="top" WIDTH="180"><IMG SRC="./produkty/105-021160-00.jpg" WIDTH="180" HEIGHT="220" BORDER="1"></TD>
  8. <TD VALIGN="top" WIDTH="100%">
  9. <TABLE WIDTH="100%" CELLSPACING="0" CELLPADDING="0" BORDER="0" COLS="2" VALIGN="top">
  10. <TR>
  11. <TD COLSPAN="2">
  12. <P class="little">Ptaki > Pokarmy > Inne
  13. </TD>
  14. </TR>
  15. <TR>
  16. <TD COLSPAN="2">
  17. <P class="tytul2"><B>VITAKRAFT KOLBA-BISZKOPT OWOCOWA DLA KANARKA</B><BR>
  18. </TD>
  19. </TR>
  20. <TR>
  21. <TD>
  22. <P>Marka produktu
  23. </TD>
  24. <TD>
  25. <P><B>Inne</B>
  26. </TD>
  27. </TR>
  28. <TR>
  29. <TD>
  30. <P>Kod
  31. </TD>
  32. <TD>
  33. <P><B>105-021160-00</B>
  34. </TD>
  35. </TR>
  36. <TR>
  37. <TD>
  38. <P>Kod kreskowy
  39. </TD>
  40. <TD>
  41. <P><B>4008239211606</B>
  42. </TD>
  43. </TR>
  44. <TR>
  45. <TD>
  46. <P>Opakowanie
  47. </TD>
  48. <TD>
  49. <P><B>10</B>
  50. </TD>
  51. </TR>
  52. <TR>
  53. <TD>
  54. <P>Komplet
  55. </TD>
  56. <TD>
  57. <P><B>1</B>
  58. </TD>
  59.  
  60. </TR>
  61. <TR>
  62. <TD>
  63. <P>Stan magazynu
  64. </TD>
  65. <TD>
  66. <P><B>jest</B>
  67. </TD>
  68. </TR>
  69. </TABLE>
  70. </TD>
  71. </TR>
  72. <TR>
  73. <TD>
  74. <P>KOLBA-BISZKOPT OWOCOWA DLA KANARKA
  75. </TD>
  76. </TR>
  77. </TABLE>
  78. </TD>
  79. </TR>
  80.  
  81. </BODY>
  82. </HTML>



Jeśli wykroczę poza zakres to dostaję taką "pustą stronę":

  1. <TITLE>katalog produktów</TITLE>
  2. </HEAD>
  3. <TR>
  4. <TD>
  5.  
  6. </TABLE>
  7. </TD>
  8. </TR>
  9. </BODY>
  10. </HTML>


Przy czym produkty są czasem z różnych kategorii i ich pola się od siebie różnią (siedzi to zawsze w powyższej formatce, ale czasem tych table albo komórek jest więcej, czasem mniej). Teraz rzecz, która potrzebuję zrobić to z tabel w tabelach i ich komórek powyciągać wartości (pewnie jakąś rekursywną funkcją) i poukładać w jakimś formacie, który mógłbym wrzucić potem do swojej bazy w MySQL, która z kolei jest obsługiwana w innym formacie i przez inne dane. Niestety mogę zrobić to tylko tak, a nie chce przeklepywac 10 tys produktow ręcznie. Chodzi tez o skopiowanie obrazkow itd. Jak mogę to zrobić? Tzn jakie kroki podjąć? Wgeta nie chcę zaprzęgać bo będzie masa roboty. Czy mogę jakoś za pomocą PHP pobrać kod strony i obrazek, obrobić te dane i wrzucić choćby do pliku cvs albo do MySQL od razu w formacie jaki bym chciał? Jak najłatwiej byłoby to zrealizować? Help, bo czas mi ucieka sad.gif

Może się da jakos wyeksplodowac to wszystko to postaci jakiejs tabeli-drzewa, albo cos?

A może wyrażenia regularne? Tylko, że ja ich kompletnie nie kumam i od dawna próbuję się nauczyć z mizernym skutkiem. Pomóżcie!
sztygr
a czy nie mozesz z MySQL chociazby przy pomocy phpmyadmin zrzucic tabelki do cvs, potem wyedytowac to w excelu i wrzucic do swojej bazy biggrin.gif... jeden z najprostszych sposobow na wprost... tak mi sie wydaje...
uirapuru
ale jedyny dostęp do tamtych danych to poprzez stronę, którą podałem. Nie mam dostepu do ich bazy danych, jestem tylko uzytkownikiem z dostepem do katalogu produktow poprzez strone www.
Neojawor
a nie ma tam strony z wylistowanymi wszystkimi produktami? wtedy można by coś pomyśleć...
uirapuru
no właśnie nie. jedyny dostęp mam do tego tak jak podałem. na moje oko można to jakoś ogarnąc, tlyko nie umiem wyrażeń regularnych poskłądać. udało mi się nawet pobierać to strumieniem do stringa, zrobić strip_tags ale wciaz mi zostaje masa /t, /n itd, ktorych trim ani str_replace nie wywala.

  1. <?
  2. $plik="http://www.e-z.com.pl/card.php?id=6566";
  3.  
  4. $uchwyt = fopen($plik, "rb");
  5. $tresc = '';
  6. while (!feof($uchwyt)) {
  7. $tresc .= fread($uchwyt, 30000);
  8. }
  9. fclose($uchwyt);
  10. $rozmiar+=strlen($tresc);
  11. $tresc="";
  12.  
  13. $wywal=array('t','n',' ','r');
  14. $wrzuc=array('','','','');
  15.  
  16. echo str_replace($wywal,$wrzuc,strip_tags($tresc));
  17.  
  18. ?>


dobra, może obok lekko tematu, ale takie pytanie, bo sobie nie radzę

jak skonstruować erega, zeby z takiego stringa:

  1. "cos tam ... <IMG SRC="./produkty/124-305198-00.jpg" WIDTH="180" HEIGHT="286" BORDER="1"> ... cos tam"


dostać samo coś takiego:
  1. /produkty/124-305198-00.jpg


(bez kropki)

Przekopuję stronkę z wyrażeniami, ale mi moje nie chodzi :/
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.