我是 PHP 的相对初学者,我正在尝试开发的网络爬虫脚本存在问题。该脚本旨在抓取一个VBulletin 论坛页面,然后解析页面上的超链接以查找包含特定“id”元素的超链接(即仅指向论坛上发布的消息线程的链接)。每个所需链接都包含一个以“thread_title_[Thread # here]”开头的“id”元素。我想出了使用 STRPOS 作为过滤器来检查收集到的链接中的每个“id”元素并检查它们是否包含片段“thread_title”的想法。不幸的是,我的努力似乎没有结果。
我将粘贴下面的代码摘录......冒着被标记为完全菜鸟的风险。;) 希望我没有做一些非常愚蠢的事情。谢谢您的帮助
$d = new domdocument();
$d->loadHTMLfile("forum3.html");
$links = $d->getElementsByTagName('a');
echo '<html xmlns="http://www.w3.org/1999/xhtml" encoding="utf-8" lang="ar-sa">';
foreach ($links as $link)
{
$threadTitleExists = $link->getAttribute('id');
$pos = strpos($threadTitleExists, 'thread_title');
$threadTitle = $link->nodeValue;
if ($link->hasAttribute('id') && ($pos==0))
{
$threadTitle = trim(preg_replace('#/\s*\([^)]*\)/', ' ', $threadTitle));
echo "Thread number: " . $threadTitleExists . "<br>Thread title: " . $threadTitle . "<p>";
}
else
{
continue;
}
}