Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dom 无法让Xpath只输出一些TD_Dom_Xpath_Screen Scraping_Screen - Fatal编程技术网

Dom 无法让Xpath只输出一些TD

Dom 无法让Xpath只输出一些TD,dom,xpath,screen-scraping,screen,Dom,Xpath,Screen Scraping,Screen,如果你知道怎么做可能真的很容易,但我不知道,在花了几个小时在谷歌上搜索之后,我不得不问一些真正的程序员,因为我显然不是一个 我似乎找不到适合我的教程或代码示例。假设我只想输出EuroDiesel 10 TR滚动到一半,然后我只需要TD编号1和9的数据。我该怎么做呢 我还想将输出数据添加到带有日期戳的SQL DB中,并每天更新一次。我假设这可以通过Cron作业来完成,这是正确的吗?是否应该为我想要从中获取数据的每个价目表制作一个作业,或者我可以用一个脚本来完成?这些站点非常不同 首先,我只需要正确

如果你知道怎么做可能真的很容易,但我不知道,在花了几个小时在谷歌上搜索之后,我不得不问一些真正的程序员,因为我显然不是一个

我似乎找不到适合我的教程或代码示例。假设我只想输出EuroDiesel 10 TR滚动到一半,然后我只需要TD编号1和9的数据。我该怎么做呢

我还想将输出数据添加到带有日期戳的SQL DB中,并每天更新一次。我假设这可以通过Cron作业来完成,这是正确的吗?是否应该为我想要从中获取数据的每个价目表制作一个作业,或者我可以用一个脚本来完成?这些站点非常不同

首先,我只需要正确的数据。这就是我目前得到的

<?php 
$dom = new DOMDocument;
$date = date("j. F, Y");
libxml_use_internal_errors(true);
$dom->loadHTMLFile('http://www3.statoil.com/mar/kbh00438.nsf/UNID/8C81E46A6EC8BA3BC12578C0002FFF5A?OpenDocument');
libxml_use_internal_errors(false);
$xpath = new DOMXPath($dom);
$aTag = $xpath->query('//p[@class="text"]');

foreach($aTag as $val) {
    echo $date, '', $val->plaintext. "". utf8_decode(trim($val->nodeValue, "")) . "<br />\n";
}
?>
我希望你们能帮助我,在这里学习

谢谢!
Art

至于XPath,我认为/html/body/form/table/tbody/tr[normalize spacetd[1]='EuroDiesel 10']/td[position=1或position=9]应该可以。然后访问$val->textContent,而不是nodeValue。

您在这里遇到的主要问题是您试图解析的HTML文档格式不正确。即使XML对于DOMDocument::loadHTMLFile不是必需的,这也会给DOMDxpath类带来问题。同意!绝对不是一个容易使用的HTMl文档。谢谢Martin。我得到了一个意外的T_字符串错误,但是我看到了逻辑,所以也许我可以通过一些修改使它工作。