【问题标题】:How do I get the text inside of the <a> This Text </a> tags using cURL?如何使用 cURL 获取 <a> This Text </a> 标签内的文本?
【发布时间】:2013-04-14 23:09:59
【问题描述】:

我收到此错误“致命错误:调用未定义的方法 DOMText::getAttribute()”的代码。我想捕获链接的文本而不是源(我不知道它叫什么)。有人可以向我解释我的错误或告诉我另一种方法吗?这是我的代码:

<?php

$target_url = "SITE I WANT";
$userAgent = 'Googlebot/2.1 (http://www.googlebot.com/bot.html)';

// make the cURL request to $target_url
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$html= curl_exec($ch);
if (!$html) {
    echo "<br />cURL error number:" .curl_errno($ch);
    echo "<br />cURL error:" . curl_error($ch);
    exit;
}

// parse the html into a DOMDocument
$dom = new DOMDocument();
@$dom->loadHTML($html);

// grab all the on the page
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a/text()");

for ($i = 0; $i < $hrefs->length; $i++) {
    $href = $hrefs->item($i);
    $url = $href->getAttribute('href');
    storeLink($url,$target_url);
    echo "<br />Link stored: $url";
}
$id = "12";
   $query = "DELETE FROM links WHERE id<=$id";
    if(!mysql_query($query))
        echo "DELETE failed: $query<br />" . 
        mysql_error() . "<br /><br />";
        ?>

【问题讨论】:

  • 查看$hrefs的内容。也许您应该改用/html/body//a,然后在每个元素上尝试检索其文本。
  • 您能否提供我将使用的代码?我通常对这一切都很陌生。
  • 看看@Adidi 的回复,他/她正在编码我刚刚评论的内容
  • 谢谢你^^

标签: php parsing curl html-parsing


【解决方案1】:

你去吧:

$document = new DOMDocument();
$document->loadHTML($html);
$selector = new DOMXPath($document);
$anchors = $selector->query('/html/body//a');

foreach($anchors as $a) { 
    $text = $a->nodeValue;
    $href = $a->getAttribute('href');
    echo($text . ' : ' . $href . '<br />');

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多