2

我试图通过保持 html 结构来抓取网站,修改所有可见文本(意思是:链接、段落、标题等),然后呈现“新”页面。

基本上我想在不破坏设计/功能的情况下打乱所有可读文本。

我用 Zend_Dom_Query 试过了,但是如何只选择文本呢?

    $dom = new Zend_Dom_Query($html);
    $results = $dom->query( ??? );

或者有另一种/更好的方法吗?

提前非常感谢。


例子

输入:

<html>
  <head>....</head>
  <body>

    <div>
      <h1>Headline</h1>
      <h2>Subheadline</h2>
      <p>Some text</p>
      <a href="...">
        A Link 
        <img src="..." />
        <span style="display:none">additional text</span>
      </a>  
    </div>

  </body>
</html>

输出:

<html>
  <head>....</head>
  <body>

    <div>
      <h1>Hinladee</h1>
      <h2>Suialebdhne</h2>
      <p>Smoe txet</p>
      <a href="...">
        A Lnik 
        <img src="..." />
        <span style="display:none">anodiaditl txet</span>
      </a>  
    </div>

  </body>
</html>
4

2 回答 2

1

你可以试试这个服务:http ://www.alchemyapi.com/api/text/ - 它的 API 提供了易于使用的机制来从任何网页中提取页面文本和标题信息。这是一个简单的方法。其他方法是使用http://www.alchemyapi.com/api/scrape/

于 2011-07-06T07:38:35.657 回答
0

解决方案:

感谢@Yoshi 和@Gordon。这正是我一直在寻找的:

$dom = new Zend_Dom_Query($html);
$results = $dom->query("//text()");
于 2011-07-07T22:38:16.040 回答