使用php简单的html dom或phpQuery查找div类值

时间:2013-04-06 02:18:07

标签: php html dom html-parsing

我正试图抓住php简单的html dom并且在div类方面遇到了一些问题。

例如,在newegg上说我想找到div class'skiplink的值(我刚在网站上选了一个随机类)。根据php简单的html dom文档找到here我应该使用。

$html = file_get_html('http://www.newegg.com');

print_r($ret = $html->find('.skiplink'));

现在它只是挂起并且似乎冻结了。我知道安装正在运行,因为以下代码可以正常工作。

foreach($html->find('a') as $element) 
   echo $element->href . '<br>';

基本上,我如何查看给定网站上的特定div类并找到该值?

是否有更简单的方法,例如使用phpQuery

2 个答案:

答案 0 :(得分:0)

通过本网站上的简单搜索:How to get value from <div>value</div>?

但这就是他们所说的;

$doc = new DomDocument();
$doc->loadHTMLFile('http://www.results.com');
$thediv = $doc->getElementById('result');
echo $thediv->textContent;

或者你可以通过id抓取它的值来找到div子句的innerText值;

$div = $doc->getElementById('result');
if($div) {
    echo $div->textContent;
}

答案 1 :(得分:0)

或者使用XPath代替,这段代码将输出src

//init DOMDocument
$dom = new DOMDocument();
//get the source from the URL
$html = file_get_contents("URL");
//load the html
dom->loadHTML($html);
//init XPath
$xpath = new DOMXPath($dom);

//fetch the src from the iframe within a class name
$iframe_src=$xpath->query('//*[@class="CLASSNAME"]/iframe//@src');

vardump($iframe_src);

要使用file_get_contents()

获取内容
$options  = array('http' => array('user_agent' => 'USERAGENT')); //you must specify a user agent
$context  = stream_context_create($options);
$response = file_get_contents($iframe_src, false, $context);