Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Parsowanie strony
Forum PHP.pl > Forum > PHP
marcinpruciak
Próbuję sparsować stronę z wynikami wyszukiwania z mobile.de.
Ten kod powinien pokazać wszystkie linki na stronie, wyświetla linki, ale pomija te które potrzebuję.
  1. $strona = file_get_contents("http://suchen.mobile.de/fahrzeuge/search.html?usage=&isSearchRequest=true&editSearch=&lang=de&export=NO_EXPORT&sortOption.sortOrder=ASCENDING&damageUnrepaired=NO_DAMAGE_UNREPAIRED&sortOption.sortBy=price.consumerGrossEuro&scopeId=C&makeModelVariant1.makeId=3500&makeModelVariant1.modelId=16%2C17%2C18%2C19%2C20%2C21%2C22%2C23%2C24%2C25%2C26&maxPrice=11001&minFirstRegistrationDate=&maxMileage=10000&fuels=&ambitCountry=&zipcode=");
  2. preg_match_all('/<(a.*) href=\"(.*?)\"(.*)<\/a>/U',$strona,$patterns);
  3. print_r($patterns);


Co jest nie tak w tym wyrażeniu?
tehaha
domyślam się, że chcesz pobrać linki do ofert, spróbuj tym:
  1. $strona = file_get_contents("http://suchen.mobile.de/fahrzeuge/search.html?usage=&isSearchRequest=true&editSearch=&lang=de&export=NO_EXPORT&sortOption.sortOrder=ASCENDING&damageUnrepaired=NO_DAMAGE_UNREPAIRED&sortOption.sortBy=price.consumerGrossEuro&scopeId=C&makeModelVariant1.makeId=3500&makeModelVariant1.modelId=16%2C17%2C18%2C19%2C20%2C21%2C22%2C23%2C24%2C25%2C26&maxPrice=11001&minFirstRegistrationDate=&maxMileage=10000&fuels=&ambitCountry=&zipcode=");
  2. preg_match_all('/<a([^<>]+)href=([^<>]+)>([^<>]+)<\/a>/U',$strona,$patterns);
  3. print_r($patterns);

everth
W epoce w której niemalże każde środowisko PHP jest wyposażone w obsługę DOM i XPath, stosowanie wyrażeń regularnych do takich zastosowań to czysty masochizm. Jak kto woli, przynajmniej regex można poćwiczyć.
marcinpruciak
W ten sposób też nie działa.

Próbowałem pobawić się DOMem, link do oferty wydobyłem ale nie zawartości linka już nie to znaczy tego pomiędzy <a></a>. Nie wiem w jaki sposób.
everth
nodeValue albo textContent - nie bardzo pamiętam czym konkretnie się to różniło (chyba textContent wypluwało ci wszystko z tagami dzieci, albo na odwrót winksmiley.jpg).
marcinpruciak
DOM jest grnialny.
Znalazłem klase http://simplehtmldom.sourceforge.net/manual.htm i wszystko się robi samo.
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.