CURL DOMXPath разные значения - PullRequest
       14

CURL DOMXPath разные значения

0 голосов
/ 08 сентября 2018

У меня есть эта функция curl, которая извлекает HTML из веб-сайта.

function curl($url){
    $headers[]  = "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13";
    $headers[]  = "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
    $headers[]  = "Accept-Language:en-us,en;q=0.5";
    $headers[]  = "Accept-Encoding:gzip,deflate";
    $headers[]  = "Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.7";
    $headers[]  = "Keep-Alive:115";
    $headers[]  = "Connection:keep-alive";
    $headers[]  = "Cache-Control:max-age=0";

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_ENCODING, "");
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    $data = curl_exec($curl);
    curl_close($curl);
    return $data;
}

И чтобы получить данные, которые я использую:

$html = curl($USE_URL);
$doc = new DOMDocument();
$doc->loadHTML($html);
$data = new DOMXPath($doc);




$date_list= $data->query('............');
$name_list= $data->query('............');

echo $date_list->length;
echo $name_list->length;

Если я запускаю этот код в ' localhost ', он работает гладко (давая мне длину 52,52 ):. но если я использую точно такой же код на своем веб-сайте altervista, это дает мне, что длина date_list равна нулю! (длина 0,52 )

Формат date_list , который я извлекаю, представляет собой строку типа «08-09-2018 12:47»

Что-то не так с заголовками curl $?

1 Ответ

0 голосов
/ 11 сентября 2018

Странно, я решил эту проблему, изменив запрос: мне пришлось обойти его: так что в основном мой новый запрос извлекает большой набор данных (например, «abcd deddeh dede 12:30 dhhh») и вручную извлекает мои реальные данные манипулируя строкой (используя методы разбиения ..)

$date_list= $data->query('.....HERE......');

Я думаю, что когда CURL загружает страницу, она не дает ей полностью измениться.

...