【发布时间】:2011-04-17 04:51:58
【问题描述】:
我需要从互联网上的网页中抓取一段文本,我正在使用 dom 和 xpath 来查找数据,但我似乎无法选择我需要的确切信息。到目前为止,这是我的代码,问题出在 item(0)->nodeValue 部分 - 这适用于我在另一个页面上的其他抓取,但不是这个。
$argos_html = file_get_html('http://www.argos.co.uk/static/Product/partNumber/9282197/Trail/searchtext%3EIPOD+TOUCH.htm');
$dom_argos= new DOMDocument();
$dom_argos->loadHTML($argos_html);
$xpath_argos = new DOMXpath($dom_argos);
$expr_currys = "/html/body/div[4]/div[3]/form/div[2]/div/div[5]/ul/li[3]/span";
$nodes_argos = $xpath_argos->query($expr_argos);
$argos_stock_data = $nodes_argos->item(0)->nodeValue;
谁能告诉我哪里出错了?因为我总是收到一个错误,这与 ->item(0)->nodeValue;部分,但是,如果我将其注释掉,则没有错误,但是根本没有收集到任何数据...
应该只是->nodeValue;
我知道这可能与页面结构有关,但我对这一切都不熟悉! 谢谢
【问题讨论】:
-
这个错误可能是因为你没有选择任何元素:没有节点时你不能调用
nodeValue!您的 XPath 中可能有一个错误——它非常复杂,所以我并不感到惊讶。看看你是否能找到一种更简单的方法来指定你想要的元素。元素 ID 将是一个很好的起点。 -
如果您遇到错误,请告诉我们它是什么。它可能对你没有任何意义,但它可能对本论坛上的某个人有意义。