在PHP中使用QueryPath获取无格式文本

时间:2013-07-18 11:24:08

标签: php html web-scraping querypath

在使用HTML Simple Dom之后,我刚刚开始使用QueryPath已经有一段时间了,并且发现QP文档似乎没有提供其所有功能的示例。

目前我正在尝试从HTML文档中检索一些没有太多使用ID或类的文本,所以我有点不在我的舒适区。

这是HTML:

<div class="blue-box">
  <div class="top">
    <h2><img src="pic.gif" alt="Advertise"></h2>
    <p>Some uninteresting stuff</p>
    <p>More stuff</p>
  </div>
</div>
<div class="blue-box">
  <div class="top">
    <h2><img src="pic2.gif" alt="Location"></h2>
    **I NEED THIS TEXT**
    <div style="margin:stuff">
      <img src="img3.gif">
    </div>
  </div>
</div>

我正在考虑选择班级'box-blue'作为起点,然后从那里下降。问题是HTML文档中可能有任意数量的盒蓝色类。

因此我想也许我应该尝试用alt =“Location”选择图像,然后使用 - &gt; next() - &gt; text()或沿着这些线的东西?

到目前为止,我已尝试了大约15种变体,但没有人获得我需要的文字。

非常感谢帮助!

2 个答案:

答案 0 :(得分:1)

您可以查看此示例http://jsfiddle.net/Pedro3M/mujtk/

我像你说的那样使用alt属性,如果你确认这是否始终是唯一的

$("img[alt='Location']").parent().parent().text();

答案 1 :(得分:0)

怎么样:

$doc->find('div.top:has(img[alt="Location"])')->text();