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

标签 php curl domdocument meta-tags

我写了这样的代码:

$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 脚本以防止抓取。如何解决这个问题?

最佳答案

添加 user_agent 就可以了

 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');

关于php - 如何使用php获取url中的元标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47917809/

相关文章:

php - CakePHP 保存空模型

php - 缓存带有 $_GET 数据的样式表

linux - 编译curl后的路径问题

php - 从文件加载 HTML 时保留 utf8

javascript - 检查文档是否准备好

PHP DomDocument - getElementByID(部分匹配)如何?

PHP 存储来自 MySQL 查询的二维数组

php - MySQL-using 对象上的迭代器

javascript - MongoDB 引用不保存 (Mongoose)

php - 使用 CURL 的支付过程中的 SSL 错误