2

我正在尝试掌握 php 简单的 html dom,但在 div 类方面遇到了一些问题。

例如,假设在 newegg 上我想找到 div 类“skiplink”的值(我只是在网站上随机选择了一个类)。根据在这里找到的 php simple html dom 文档,我应该只使用。

$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

4

2 回答 2

0

从这个网站上的一个简单搜索:如何从 <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;
}
于 2013-04-06T05:51:54.867 回答
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);
于 2014-11-22T02:58:53.827 回答