Новичок пытается наскрести сайт без удачи - PullRequest
0 голосов
/ 12 июня 2019

Я новичок в php и попробовал несколько вещей, чтобы попытаться очистить 1 из 2 сайтов.Любой из этих сайтов будет в порядке для данных, которые я ищу.Попытался выяснить, как это сделать, используя YouTube видео и другие ресурсы.может быть, это очень сложно для меня, чтобы понять.использовать CURL, DOM и т. д., но изо всех сил пытаюсь заставить меня обойти это.Я только хочу вернуть ДАТУ & Время, название ипподрома и имя скаковой лошади.

Я подумал, может ли кто-нибудь помочь объяснить, где искать или какой код использовать.или даже там, где я иду не так.Я буду интегрировать этот код в страницу WordPress в виде таблицы

<?php

include('simple_html_dom.php');
header('Content-Type: application/json');
$html=file_get_html("https://www.sportinglife.com/racing/profiles/trainer/216");
//$html=file_get_html("https://www.racingpost.com/profile/trainer/28787/richard-hannon/entries");

$row_count=0;
$json = array();

// Find all links 
$table = $html->find('table', 0);
foreach($table->find('tr') as $row) {
$day = $row->find('td',0)->plaintext;
$horse = $row->find('td',1)->innertext;
$racecourse = $row->find('td',2)->innertext;

$json[] = [ 'Date & Time' => strip_tags($day), 'Horse' => strip_tags($horse),'Racecourse' => strip_tags($racecourse)];
}

$options = array(
'http' => array(
'method'  => 'POST',
'content' => json_encode(array('Closings' =>$json)),
'header'=>  "Content-Type: application/json\r\n" .
            "Accept: application/json\r\n"
)
);

$context  = stream_context_create( $options );
$result = file_get_contents( $url, false, $context );
$response = json_decode( $result );

echo json_encode(array('Closings' =>$json), JSON_PRETTY_PRINT);  


?>  

1 Ответ

0 голосов
/ 12 июня 2019

Попробуйте использовать другой метод замены для file_get_html. Я предлагаю вам использовать этот пакет: https://github.com/php-curl-class/php-curl-class

Подробнее:

$url = 'https://www.sportinglife.com/racing/profiles/trainer/216';
$curl = new Curl();
$curl->get($url);
$data = $curl->response;
$curl->close();
$html = str_get_html($data);
foreach($html->find('a[class="person-profile-racing-form-racecard-link"]') as $e){      
    $date = $e->innertext;  
    echo $date.'</br>';     
};
$html->clear();
unset($html);

:) Удачи

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