【问题标题】:Displaying the results of php document parser显示 php 文档解析器的结果
【发布时间】:2023-03-08 18:10:02
【问题描述】:

您可以回显文档解析器的结果,还是必须先创建一个数组来显示结果?无论如何,运行代码时,什么都没有出现(没有输出或错误),我已经尝试了这两种方法。可能是网站问题,但我尝试了其他几个并得到相同的结果。

<?php
$ebayquery ='halo';
$ebayhtml = 'https://www.ebay.com/sch/i.html_from=R40&_trksid=p2380057.m570.l1311.R6.TR12.TRC2.A0.H0.X.TRS0&_nkw=' . $ebayquery . '&_sacat=0';
$ebayresults = array();

$document = new \DOMDocument('1.0', 'UTF-8');
$internalErrors = libxml_use_internal_errors(true);
$document->loadHTML($ebayhtml);
libxml_use_internal_errors($internalErrors);
$xpath = new DOMXpath($document);
$links = $xpath->query('//h3[@id="lvtitle"]/a');

foreach($links as $a) {
    echo $a->nodeValue;
}
?>

【问题讨论】:

    标签: php parsing dom


    【解决方案1】:

    代码有几个问题。首先是loadHTML() 接受HTML 的字符串,而不是文件名或URI。所以首先你必须阅读网页并将其传递(我在这里使用了file_get_contents())。

    其次,XPath 正在寻找任何 id 属性为 lvtitle 的 &lt;h3&gt; 标记,只有类属性为 lvtitle 的实例。我已经更新了 XPath 表达式来使用它。

    $ebayquery ='halo';
    $ebayhtml = 'https://www.ebay.com/sch/i.html_from=R40&_trksid=p2380057.m570.l1311.R6.TR12.TRC2.A0.H0.X.TRS0&_nkw=' . $ebayquery . '&_sacat=0';
    $ebayresults = array();
    
    $document = new \DOMDocument('1.0', 'UTF-8');
    $internalErrors = libxml_use_internal_errors(true);
    $ebayhtml = file_get_contents($ebayhtml);
    $document->loadHTML($ebayhtml);
    libxml_use_internal_errors($internalErrors);
    $xpath = new DOMXpath($document);
    $links = $xpath->query('//h3[@class="lvtitle"]/a');
    print_r($links);
    foreach($links as $a) {
        echo $a->nodeValue.PHP_EOL;
    }
    

    【讨论】:

    • 虽然您对第二个问题的解决方案很有效,但第一个问题有些缺陷,因为在执行时,该 url 被使用了两次,一次用于访问网站,一次用于搜索查询。所以显示的结果是基于搜索框中是否输入了“from=R40&trksid........”。
    • 另外,结果列表前面没有DOMNodeList Object ( [length] =&gt; 48 )怎么打印结果呢?
    • 我不确定需要如何获取结果页面,但重要的部分是传递获取页面的结果而不是 URI。至于去掉多余的输出,把代码中的print_r去掉。
    • 显示不正确结果的第一个问题只是来自错误的 URL。现在一切都解决了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    相关资源
    最近更新 更多