Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Simple HTML Dom Parser problem: failed to open stream: HTTP request failed! HTTP/1.0 404
Forum PHP.pl > Forum > Przedszkole
d0m1n1k_
Witam,
chciałem aby za pomocą poniższego skryptu i biblioteki Simple HTML Dom wyciągnąć linki zgodne z poszukiwanym ze mną schematem.
Mój skrypt:

  1. include('../simple_html_dom.php');
  2. $handle = fopen("_get_links.php", "r");
  3. if($handle){
  4. while(($line = fgets($handle)) !== false){
  5.  
  6. $html = file_get_html($line);
  7. foreach($html->find('a') as $element){
  8. $linkx = $element->href;
  9. if (strpos($linkx,'http://wybrana.domena/produkt/') !== false){
  10. echo $linkx . "<br />";
  11. }
  12. }
  13. }
  14. fclose($handle);
  15. }else{
  16. echo "<br />Error";
  17. }


Pierwsza linijka jest przetwarzana poprawnie.
Niestety, już druga i kolejna nie działa :-//

Wywala następujący błąd:



  1. Warning: file_get_contents( ) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in C:\WebServ\httpd-users\0016-elena_parser\simple_html_dom.php on line 75
  2.  
  3. Fatal error: Call to a member function find() on a non-object in C:\WebServ\httpd-users\0016-elena_parser\app\index.php on line 11


Gdzie:
http://wybrana.domena/produkty/?search%5Bo...Aasc&page=2 - drugi link w pliku _get_links.php
index.php - nazwa pliku ze skryptem
viking
Przecież masz odpowiedź w kodzie: 404 Not Found
Kolejne to już następstwo.
Comandeer
Od razu warto zwrócić uwagę na to, że Simple DOM Parser jest niesamowicie przestarzały i nierozwijany. Lepiej używać DOM wbudowanego w PHP
d0m1n1k_
Ale gdy uprościć skrypt do:

  1. include('../simple_html_dom.php');
  2. $line = "http://www.adres1.com/zmienne&wiecejzmiennych&cos_tam_jeszcze";
  3. $html = file_get_html($line);
  4. foreach($html->find('a') as $element){
  5. $linkx = $element->href;
  6. if (strpos($linkx,'http://wybrana.domena/produkt/') !== false){
  7. echo $linkx . "<br />";
  8. }
  9. }


To z osobna, każda strona jest ładowana poprawnie
Comandeer
A wyświetl sobie po kolei wszystkie linijki czy aby na pewno nie ma w nich jakichś śmieci
Pyton_000
file_get_html(trim($line));

questionmark.gif
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.