我想写一个PHP脚本来抓取一个网站,并保留在数据库中的一些元素。php - 简单的HTML DOM - 其他元素之间的元素
这里是我的问题:一个网页是这样写的:
<h2>The title 1</h2>
<p class="one_class"> Some text </p>
<p> Some interesting text </p>
<h2>The title 2</h2>
<p class="one_class"> Some text </p>
<p> Some interesting text </p>
<p class="one_class"> Some different text </p>
<p> Some other interesting text </p>
<h2>The title 3</h2>
<p class="one_class"> Some text </p>
<p> Some interesting text </p>
我想只有H2和P有趣的文本,而不是在p类=“one_class”。
我尝试这样做PHP代码:
<?php
$numberP = 0;
foreach($html->find('p') as $p)
{
$pIsOneClass = PIsOneClass($html, $p);
if($pIsOneClass == false)
{
echo $p->outertext;
$h2 = $html->find("h2", $numberP);
echo $h2->outertext;
$numberP++;
}
}
?>
功能PIsOneClass($ HTML,$ p)为:
<?php
function PIsOneClass($html, $p)
{
foreach($html->find("p.one_class") as $p_one_class)
{
if($p == $p_one_class)
{
return true;
}
}
return false;
}
?>
它不工作,我明白为什么,但我不知道如何解决它。
我们怎么说“我想每个没有班级的人都在两个h2之间?”
Thx很多!
如果他们都是'p.one_class',那么为什么不在输出保存结果之前查找这些'p'标签并将其删除? – 2014-10-19 14:07:19
但是我怎样才能订购h2和p?有了这个脚本,它会打印h2 p h2 p h2 p,但我想要类似h2 p p h2 p – 2014-10-19 14:29:49