我有一個Simple PHP DOM解析器的問題。我基本上必須爲圖像和他們的頭銜刮目錄網站。簡單的PHP DOM解析器不能在開關盒(PHP)中工作
該網站是刮是http://pinesite.com。
我想出了下面的代碼來做到這一點(這將通過AJAX調用):
<?php
include ('simple_html_dom.php');
$function = $_GET['function'];
switch($function) {
case 'subcat':
$maincat = $_GET['cat'];
$url = "http://www.pinesite.com/meubelen/index.php?".$maincat."&lang=de";
$html = file_get_html($url);
$data = $html->find('.box_166_content .act_path li a');
$output ="";
foreach ($data as $subcat) {
$title = $subcat->plaintext;
$href = $subcat->href;
$link['title'] = $title;
$link['href'] =substr($href,10);
$output[] = $link;
}
echo json_encode($output);
$html->clear();
unset($html);
unset($url);
break;
case 'images':
$subcat = $_GET['subcat'];
$url = "http://www.pinesite.com/meubelen/index.php?".$subcat;
$html = file_get_html($url);
$iframe = $html->find('#the_iframe',0);
$url2 = $iframe->src;
$html->clear();
unset($html);
$html2 = file_get_html("http://www.pinesite.com/meubelen/".$url2);
$titles = $html2->find('p');
$images = $html2->find('img');
$output='';
$i=0;
foreach ($images as $image) {
$item['title'] = $titles[$i]->plaintext;
$item['thumb'] = $image->src;
$item['image'] = str_replace('thumb_','',$image->src);
$output[] = $item;
$i++;
}
echo json_encode($output);
break;
}
?>
所以這是「功能」文件,不工作的部分是最後一種情況。
我不知道錯在這裏,所以我在一個單獨的文件中進行了測試(最後一種情況下)(我把它從iFrame中獲取URL(即部分不工作):
<?php
include_once "simple_html_dom.php";
$fullurl = "http://www.pinesite.com/meubelen/prog/browse.php?taal=nl&groep=18&subgroep=26";
$html = file_get_html($fullurl);
$titles = $html->find('p');
$images = $html->find('img');
$output='';
$i=0;
foreach ($images as $image) {
$item['title'] = $titles[$i]->plaintext;
$item['thumb'] = $image->src;
$item['image'] = str_replace('thumb_','',$image->src);
$output[] =$item;
$i++;
}
echo json_encode($output);
?>
就像我說的第一部分應該返回相同的第二個(如果你添加?功能=圖像& subcat = dichte-kast)但它沒有。我猜是因爲我多次使用解析器。
有沒有人對我有什麼建議?
沒有你真的檢查過,如果URL檢索工作。 '$ url2'實際上是否有一個有效的url? '$ html2'是否有一些頁面內容?您的腳本完全取決於服務器的網絡連接是否穩定,遠程站點是否可用,對於任何錯誤都沒有餘量。 –
我知道:),這只是一個刮擦的測試,我會在它上線之前修復所有這些。 –