代码之家  ›  专栏  ›  技术社区  ›  Ubaidullah MS

如何使用php在url中获取元标记

  •  2
  • Ubaidullah MS  · 技术社区  · 7 年前

    我编写了如下代码:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $data = curl_exec($ch);
    curl_close($ch);
    $html = $data;
    
    //parsing begins here:
    $doc = new \DOMDocument();
    @$doc->loadHTML($html);
    $metas = $doc->getElementsByTagName('meta');
    

    这段代码目前正在运行,但一些URL会阻止PHP脚本以防止刮取。如何解决此问题?

    2 回复  |  直到 7 年前
        1
  •  3
  •   Arafath    7 年前

    添加user\u代理它将正常工作

     curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
    
        2
  •  2
  •   user8046090 user8046090    7 年前

    您可以使用以下方法提取所有元标记:

    $tags = get_meta_tags('http://www.example.com/');
    
    // Notice how the keys are all lowercase now, and
    // how . was replaced by _ in the key.
    echo $tags['author'];       // name
    echo $tags['keywords'];     // php documentation
    echo $tags['description'];  // a php manual
    echo $tags['geo_position']; // 49.33;-86.59