Как загрузить определенный DIV с сайта с помощью cURL?

#php #function #html #curl

#php #функция #HTML #curl

Вопрос:

Я изучаю PHP, и я хотел бы знать, как автоматически загружать определенный DIV каждые один или два часа через cURL с веб-сайта.

Ответ №1:

Вы этого не делаете. Вы загружаете всю страницу целиком, затем анализируете ее для конкретного интересующего вас DIV.

Ответ №2:

НЕПРОВЕРЕНО (могут быть ошибки):

 set_time_limit(3600*24); //24 hours

$numDownloads = 12; 

for ($i = 0; $i < $numDownloads; $i  ) 
{
    $ch = curl_init('http://www.example.com/');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $content = curl_exec($ch);
    curl_close($ch);

    if (preg_match('/<div>(.*?)</div>/i', $content, $matches)) 
    {
        $divContents = $matches[1];

        $myFile = 'div'.$i.'.txt'; 

        if ($fh = fopen($myFile, 'w')) 
        {
            fwrite($fh, $divContents) 
        } 

        fclose($fh);
    }


    sleep(3600*2); 
}
  

Я предлагаю вам прервать цикл и запустить его в задании cron….

Комментарии:

1. лол… Я полный нуб… как удалить цикл xD? — и могу ли я указать div?

2. Чтобы удалить цикл, вам нужно удалить этот код: for ($i = 0; $i < $numDownloads; $i ) { } . Div может быть указан в этой строке: if (preg_match('/<div>(.*?)</div>/i', $content, $matches)) . Единственная проблема в том, что ваш div должен иметь идентификатор или что-то уникальное в нем. Кроме того, вам действительно следует изучить основы PHP, прежде чем использовать этот код. Незнание того, как удалить цикл, только вызовет у вас больше головной боли позже.

3. Спасибо за информацию… Я начал изучать его с помощью W3Schools 😉

4. Я бы держался подальше от этого человека.. Я не могу найти сообщение, в котором я нашел это здесь, но ознакомьтесь w3fools.com , у них есть куча допустимых точек.

Ответ №3:

Вы можете загрузить страницу с помощью cURL и проанализировать ее с помощью SimpleXML, чтобы найти то, что вам нужно.

SimpleXMLElement::xpath возможно, это самый быстрый способ найти то, что вы ищете.