Странная проблема с простым HTML DOM и извлечением данных через вложенный цикл - PullRequest
0 голосов
/ 04 августа 2011

Я прошу прощения, если это вопрос новичка, но я не могу понять, почему это не работает - и я не могу ничего найти об этом при поиске.

По сути, я пытаюсьСоскребите некоторые детали с нашего сайта, которые недоступны с сайтов REST API, поэтому я должен сделать это вручную.Я скомпилировал текстовый файл с идентификаторами пользователей, которые я использую для извлечения необходимых сведений от каждого пользователя через Simple HTML Dom.

<?php
include('simple_html_dom.php') ;
include('functions.php') ;

$file = fopen("userids2.txt", "r") ;
while(!feof($file)) {
    $userid = fgetss($file) ;
    $url = 'http://<our URL>/user/'.$userid ;
    echo $url ; 
    webscraper($url) ;

}

fclose($file) ;
?>

, и вот содержимое functions.php:

   <?php
function webscraper($loopurl) {
    $html = new simple_html_dom();
    $html->load_file($loopurl);
    $test = $html->getElementsById('ctl00_ContentPlaceHolderDefault_UserViewUC_tabContainer_tabProfile_userProfile_ddWork') ;

    foreach ($test as $element) {
        echo $element ;
    }
}
?>

Конкретный используемый текстовый файл содержит 4 идентификатора пользователя, которые, как я знаю, содержат информацию, которую я хочу.Когда я запускаю скрипт, он выдаст мне только выходные данные из последней строки в текстовом файле.Он печатает URL-адреса нормально, но отказывается загружать удаленный HTML для первых трех записей.Если я удаляю последнюю строку текстового файла, он загружает новую последнюю строку (что он отказывался делать раньше).

Есть идеи ??Заранее спасибо.

1 Ответ

0 голосов
/ 08 августа 2011

Дох .. Я выяснил, в чем проблема.На всех записях в текстовом файле был «невидимый» символ конца строки, КРОМЕ ТОГО, как последний.Вот почему он отказался работать.Добавление обрезки при извлечении строки устранило проблему:

 $userid = trim(fgetss($file)); 

Возможно, я должен был это знать, но, по крайней мере, в следующий раз я не сделаю эту ошибку: -).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...