PHPQuery - 获取包含特定网址页面

时间:2016-01-06 10:06:34

标签: php phpquery

我正在尝试使用PHPQuery获取给定页面上包含特定url页面的所有链接。我正在使用PHPQuery的PHP支持语法。

include_once 'phpQuery.php';
$url = 'http://www.phonearena.com/phones/manufacturer/';
$doc = phpQuery::newDocumentFile($url);

$urls = $doc['a'];

foreach ($urls as $url) {
    echo pq($url)->attr('href') . '<br>';
}

上面的代码有效。但它显示了所有链接 我想只显示包含&#34; / phones / manufacturer /&#34;的那些。 我尝试了这个,但它没有显示任何内容:

include_once 'phpQuery.php';
$url = 'http://www.phonearena.com/phones/manufacturer/';
$doc = phpQuery::newDocumentFile($url);

$urls = $doc['a'];

foreach ($urls as $url) {
    echo pq($url)->attr('href:contains("/phones/manufacturer/")') . '<br>';
}

2 个答案:

答案 0 :(得分:3)

使用以下编码从该网站获取所有网址

        $doc = new DOMDocument();
                @$doc->loadHTML(file_get_contents('http://www.phonearena.com/phones/manufacturer/'));

                $ahreftags = $doc->getElementsByTagName('a');

                    foreach ($ahreftags as $tag) {
                        echo "<br/>";
                        echo $tag->getAttribute('href');
                        echo "<br/>";
                    }


exit;

答案 1 :(得分:1)

试试这个,italian guidejquery documentation

include_once 'phpQuery.php';
$url = 'http://www.phonearena.com/phones/manufacturer/';
$doc = phpQuery::newDocumentFile($url);

$urls = $doc['a[href*="/phones/manufacturer/"]'];

foreach ($urls as $url) {
    echo pq($url)->attr('href') . '<br>';
}