从另一个网站阅读HTML并分析HTML树

时间:2019-07-16 11:59:46

标签: javascript php jquery html loops

我希望这不是重复的。

我通过php这样阅读了另一个网站:

$homepage = @file_get_contents($url);

if ( $homepage == false ) {
  //...oh dear
}   

现在我想从html获取html标签节点(jquery锚点),说我有此代码

<div>
  <table>
    <tr>
      <td>
        xxx
      </td>
      <td>
        yyy
      </td>
      <td>
        zzz
      </td>
    <tr>
  </table>
</div>

我想获取带有“ xxx”,“ yyy”,“ zzz”的数组。

通常我会使用jquery / js并通过$('div table tr td').Val();循环,但是如何使用php呢?

2 个答案:

答案 0 :(得分:1)

您可以使用PHP Html Parser

示例代码:

require "vendor/autoload.php";
use PHPHtmlParser\Dom;

$dom = new Dom;
$dom->load('<div class="all"><p>Hey bro, <a href="google.com">click here</a><br /> :)</p></div>');
$a = $dom->find('a')[0];
echo $a->text; // "click here"

答案 1 :(得分:0)

由于我的服务器解析器,我在同时使用phpQuery和PHP html时遇到了问题,所以最终我使用了:https://simplehtmldom.sourceforge.io/

示例代码:

include('files/libs/simplehtmldom_1_9/simple_html_dom.php');

// get DOM from URL or file
$html = file_get_html('http://poland_is_great.pl/');


// find all links
foreach($html->find('a') as $e) 
    echo $e->href . '<br>';

//table loop
foreach($html->find('tr') as $tr) 
{
    foreach($tr->find('td') as $td)
    {
        echo $td->innertext . '<br>';
    }
}