我一直在使用网络抓取工具。它适用于少数网站, 现在,当我尝试使用这个特定网站时,它什么都没有。没有错误。
我想知道出了什么问题......
代码如下:
<?php
require_once('dom/simple_html_dom.php');
$html = file_get_html('http://www.studentdoc.com/phpBB2/viewforum.php?f=18&sid=2a150b97528c8ec47600692cc77daaf3');
$elementCount=0;
foreach($html->find('dl.icon a') as $elemen) {
foreach($elemen->find('dt a') as $element) {
$elementCount++;
$element->href = "http://www.usmleforum.com" . $element->href;
echo '<li target="_blank" class="itemtitle">';
if($elementCount < 5 && $elementCount > 2 && rand(0,1) == 1) {
echo '<span class="item_new">new</span>';
}
echo $element;
echo '</li>';
if($elementCount==12){
break;
}
}
}
?>
请浏览下面给出的HTML结构链接..
http://www.studentdoc.com/phpBB2/viewforum.php?f=18&sid=2a150b97528c8ec47600692cc77daaf3
感谢任何帮助..
答案 0 :(得分:1)
没有像dl.icon a dt a
这样的DOM元素。您可能想要获取dl.icon dt a
。从find方法中的第一个参数中删除a
。
在提出问题之前,请务必尝试调试代码。每个语句后的简单echo "A"; die(); echo "B"; die();
将非常有用:)。
在这种情况下,第二个foreach始终有0个元素。