【发布时间】:2012-12-23 14:35:51
【问题描述】:
我正在尝试从任何维基页面右侧的维基百科信息框中抓取内容。
我正在使用 DOMXpath 来抓取内容。
在this 链接的信息框(在右侧),我正在尝试抓取Traded as 部分。但是在页面源中它是由多个 href 组成的。
Traded as: NASDAQ: GOOG
NASDAQ-100 Component
S&P 500 Component
我的 SIMPLE_XML_Element_Object 看起来像这样
SimpleXMLElement object {
@attributes => array(1) (
[class] => (string)
)
th => SimpleXMLElement object {
@attributes => array(2) (
[scope] => (string) row
[style] => (string) text-align:left;
)
a => (string) Traded as
}
td => SimpleXMLElement object {
@attributes => array(2) (
[class] => (string)
[style] => (string)
)
a => array(4) (
[0] => (string) NASDAQ
[1] => (string) GOOG
[2] => (string) NASDAQ-100 Component
[3] => (string) S&P 500 Component
)
}
这就是我试图抓取的内容。
foreach ($xmlElements->xpath("//div[@id='mw-content-text']/table[@class='infobox vcard']/tr") as $node)
{
$name = (string)$node->th;
if(empty($name))
$name = (string)$node->th->a;
if(is_array($node->td->a))
$value = implode('~', (string) $node->td->a);
else
$value = (string) $node->td->a;
}
但是我无法获得形成为"NASDAQ: GOOD ~ NASDAQ-100 Component ~ NASDAQ-100 Component" 的值,而我仅获得了"NASDAQ" 的值,这不是必需的。
如果是数组,如何从节点中获取值?
希望我的问题很清楚。任何帮助将不胜感激。
【问题讨论】: