我正在使用simple_html_dom来抓取一个网站,所有内容都被删除了,但它多次显示已删除的数据。
这是我试图抓的选择器,我认为这会导致问题。
#wrapper > div.container > div > h3 > a
您可以查看我的示例[Link Removed]。
我的代码就是我目前正在使用的代码。
$html = file_get_html('http://www.example.com/sitefile.php?s=1&page='.$page.'');
foreach($html->find('#wrapper > div.container > div: > h3') as $element)
{
echo '<br><br>';
echo $url = $element->href;
$html2 = file_get_html($url);
echo '<br>';
$title = $html2->find('#primary > div > div > div > h1',0);
echo $title = ucwords(strtolower($title->plaintext));
echo '<br>';
$youtube = $html2->find('#Playerholder > iframe',0);
preg_match("/embed\/(.*)\?/", $youtube->src, $output_array);
echo $youtube = $output_array[1];
}
答案 0 :(得分:2)
发现了这个问题。
显然,您尝试从中获取内容的网站有两个不同的位置,使用相同的选择器,您正在为#wrapper > div.container > div > h3 > a
抓取,这就是为什么它会返回多个结果所以请尝试将此foreach($html->find('#wrapper > div.container > div: > h3') as $element)
更改为此foreach($html->find('.omega-grid > h3 > a') as $element)
,并且您应该拥有您正在寻找的输出。
编辑:
foreach($html->find('.omega-grid > h3 > a') as $element)
{
echo '<br><br>';
echo $url = $element->href;
$html2 = file_get_html($url);
echo '<br>';
$title = $html2->find('#primary > div > div > div > h1',0);
echo $title = ucwords(strtolower($title->plaintext));
echo '<br>';
$youtube = $html2->find('#Playerholder > iframe',0);
preg_match("/embed\/(.*)\?/", $youtube->src, $output_array);
echo $youtube = $output_array[1];
}