2017-01-22 5 views
0

Я пытаюсь выяснить, как (и лучший способ) вернуть определенный раздел страницы. Я хочу знать, могу ли я «захватить» и вернуть информацию, хранящуюся в теге раздела HTML.Возврат определенного раздела по запросу

EDIT:

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

Это "случайное" часть:

<?php 
$curl = curl_init('https://www.ah.nl/producten/product/wi94782/ah-mandarijnen-net'); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 

$page = curl_exec($curl); 

if(curl_errno($curl)) // check for execution errors 
{ 
     echo 'Scraper error: ' . curl_error($curl); 
     exit; 
} 

curl_close($curl); 

$regex = '/<div class="navigation-section navigation-section--home">(.*?)<\/div>/s'; 
if (preg_match($regex, $page, $list)) 
    echo $list[0]; 
else 
    print "Not found"; 
?> 

Приведенный выше код возвращает:

<div class="navigation-section navigation-section--home"> 
       <a href="/" 
        class="ah-online-icon icon--home link--2 navigation-section__link navigation-section__link--left-icon navigation-section__link--home">Home</a> 
     </div> 

Так, что работает. Кроме этого, часть я хочу, чтобы очистить это:

<section class="nasa-number"><span>548401</span></section>

(вы можете проверить link, если вы хотите, я пытаюсь напечатать серый номер в нижней части страницы справа)

Вместо этого, когда я использую $regex = '/<section class="nasa-number">(.*?)<\/section>/s';, он возвращает: Не найдено

+0

Вы не знаете, что хотите. Может быть полезно, если вы можете прикрепить код, который вы уже сделали в качестве примера, к тому, что вы пытаетесь выполнить. – georoot

+0

Я полностью понимаю, что вы говорите. У меня пока нет кода, потому что я понятия не имею, с чего начать. Я могу опубликовать полные ссылки и показать вам. – Thimo

+0

Обычно скрипинг экрана с PHP выполняется с помощью CURL, который может извлекать контент. Затем вам нужно будет написать код, чтобы найти значение, которое вам нужно, и назначить переменную, которая обычно требует некоторого знания регулярных выражений. –

ответ

-2

Да, это может быть сделано во многих отношениях вы можете использовать Jquery для той, на которой вы можете запустить OnLoad() fiinction.if есть любое число url, вы можете получить его и передать его другому собственному URL-адресу. пожалуйста, пришлите мне пример кода, так что я могу дать вам самое лучшее решение, основанное на вашей проблеме

+0

, так как он пытается получить контент с удаленного сайта, на котором он не контролирует, я не вижу, как может помочь jquery, или почему вы его используете после того, как вы успешно извлекли удаленный контент. –

0

Я думаю, что это будет делать то, что вам нужно

if (preg_match("/<section class=\"nasa-number\"><span>(.*?)<\/span><\/section>/", $page, $list)){ 
    echo $list[1]; 
    } else { 
    print "Not found"; 
} 

Это заменит все после curl_close($curl); Примечание все, что я сделал использовали двухместное кавычки как контейнер, поэтому мне пришлось скрывать фактические кавычки, которые я хотел сопоставить. Протестировано здесь http://www.phpliveregex.com/p/iFn

+0

Отлично! Я проверю это на несколько. – Thimo

Смежные вопросы