2014-04-19 4 views
0

Я пытаюсь «украсть» названия продуктов с веб-сайта, чтобы перечислить его самостоятельно. Я хочу сохранить эти значения в массиве. В настоящее время я успешно распечатал их с помощью cURL и разделил все стили.Хранить данные в массиве из цикла for с сайта cURL

Вот мой код:

<?php 
$ch = curl_init("http://www.nrs.com/category/3101/whitewater-kayaking/helmets"); 
$fp = fopen("example_homepage.txt", "w"); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_exec($ch); 
curl_close($ch); 
fclose($fp); 

$website = file_get_contents('example_homepage.txt'); 
//COLLECTED AND STORED WEBSITE AS VARIABLE 

preg_match_all('#\<h2>(.+?)\<\/h2>#s', $website, $unfiltered); 

$products = array_pop($unfiltered); 
$remove_how_much = (count($unfiltered[0]))-(array_search('Follow Us:',$products)); 


for($count=1;$count<=$remove_how_much;$count++) { 
    array_pop($products); 
} 

for($counter=0;$counter<=(count($products)-1);$counter++) { 
    $explode1 = explode('>',$products[$counter]); 
    $explode2 = explode ('</a',$explode1[1]); 
    echo $explode2[0]; 
    echo '<br/>'; 
} 

?> 

Go тест это быстро вы увидите, что она печатает его. Я ищу, чтобы сохранить эти значения в массив, проверьте, есть ли повторы, и вынимает слово

- Closeout 

из всех значений.

Я также упал в необходимости проверки других разбитым на страницы страницы,

Таким образом, я должен был бы петлю из

http://www.nrs.com/category/3101/whitewater-kayaking/helmets?pg=1 

в

http://www.nrs.com/category/3101/whitewater-kayaking/helmets?pg=2 

и не так далее, пока он получает ошибки или дублированных страниц.

Любые идеи?

Кроме того, есть способ улучшить мой текущий код, чтобы захватить его более эффективно.

+0

В чем проблема? Запустите код в цикле, увеличивая номер страницы в URL-адресе. Когда вы получите сообщение об ошибке, выйдите из цикла. – Barmar

+0

Я не знаю, было ли это более эффективным, но было бы правильнее использовать парсер HTML вместо regexp для анализа файлов. – Barmar

+1

Почему вы пишете веб-страницу в файл, а затем читаете файл? Почему бы просто не прочитать веб-страницу непосредственно в переменной? – Barmar

ответ

1

Использование PHP Simple HTML DOM Parser

<? 

include("simple_html_dom.php"); 

$html = file_get_html('http://www.nrs.com/category/3101/whitewater-kayaking/helmets?ppg=all'); 


foreach($html->find('h2') as $element) 
     echo $element->plaintext."<br />"; 

/* OUTPUT 
WRSI Trident Composite Helmet 
WRSI Moment Fullface Helmet With Vents 
WRSI Moment Fullface Helmet Without Vents 
WRSI Current Pro Helmet 
WRSI Current Helmet Without Vents 
WRSI Current Helmet Without Vents 
WRSI Current Helmet With Vents 
WRSI Current Helmet With Vents 
WRSI Current Rescue Helmet without Vents 
WRSI Current Rescue Helmet with Vents 
WRSI Limited Edition Current Helmet 
NRS Chaos Helmet - Side Cut - Closeout 
... 
*/ 
?> 

Главная http://simplehtmldom.sourceforge.net/

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