当前位置: 首页 > 编程笔记 >

php中get_meta_tags()、CURL与user-agent用法分析

高恺
2023-03-14
本文向大家介绍php中get_meta_tags()、CURL与user-agent用法分析,包括了php中get_meta_tags()、CURL与user-agent用法分析的使用技巧和注意事项,需要的朋友参考一下

本文实例分析了php中get_meta_tags()、CURL与user-agent用法。分享给大家供大家参考。具体分析如下:

get_meta_tags()函数用于抓取网页中<meta name="A" content="1"><meta name="B" content="2">形式的标签,并装入一维数组,name为元素下标,content为元素值,上例中的标签可以获得数组:array('A'=>'1', 'b'=>'2'),其他<meta>标签不处理,并且此函数只处理到</head>标签时截止,之后的<meta>也不再继续处理,不过<head>之前的<meta>还是会处理.

user-agent是浏览器在向服务器请求网页时,提交的不可见的头信息的一部分,头信息是一个数组,包含多个信息,比如本地缓存目录,cookies等,其中user-agent是浏览器类型申明,比如IE、Chrome、FF等.

今天在抓取一个网页的<meta>标签的时候,总是得到空值,但是直接查看网页源代码又是正常的,于是怀疑是否服务器设置了根据头信息来判断输出,先尝试使用get_meta_tags()来抓取一个本地的文件,然后这个本地文件将获取的头信息写入文件,结果如下,其中替换成了/,方便查看,代码如下:

array ( 

  'HTTP_HOST' => '192.168.30.205', 

  'PATH' => 'C:/Program Files/Common Files/NetSarang;C:/Program Files/NVIDIA Corporation/PhysX/Common;C:/Program Files/Common Files/Microsoft Shared/Windows Live;C:/Program Files/Intel/iCLS Client/;C:/Windows/system32;C:/Windows;C:/Windows/System32/Wbem;C:/Windows/System32/WindowsPowerShell/v1.0/;C:/Program Files/Intel/Intel(R) Management Engine Components/DAL;C:/Program Files/Intel/Intel(R) Management Engine Components/IPT;C:/Program Files/Intel/OpenCL SDK/2.0/bin/x86;C:/Program Files/Common Files/Thunder Network/KanKan/Codecs;C:/Program Files/QuickTime Alternative/QTSystem;C:/Program Files/Windows Live/Shared;C:/Program Files/QuickTime Alternative/QTSystem/; %JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;', 

  'SystemRoot' => 'C:/Windows', 

  'COMSPEC' => 'C:/Windows/system32/cmd.exe', 

  'PATHEXT' => '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 

  'WINDIR' => 'C:/Windows', 

  'SERVER_SIGNATURE' => '', 

  'SERVER_SOFTWARE' => 'Apache/2.2.11 (Win32) PHP/5.2.8', 

  'SERVER_NAME' => '192.168.30.205', 

  'SERVER_ADDR' => '192.168.30.205', 

  'SERVER_PORT' => '80', 

  'REMOTE_ADDR' => '192.168.30.205', 

  'DOCUMENT_ROOT' => 'E:/wamp/www', 

  'SERVER_ADMIN' => 'admin@admin.com', 

  'SCRIPT_FILENAME' => 'E:/wamp/www/user-agent.php', 

  'REMOTE_PORT' => '59479', 

  'GATEWAY_INTERFACE' => 'CGI/1.1', 

  'SERVER_PROTOCOL' => 'HTTP/1.0', 

  'REQUEST_METHOD' => 'GET', 

  'QUERY_STRING' => '', 

  'REQUEST_URI' => '/user-agent.php', 

  'SCRIPT_NAME' => '/user-agent.php', 

  'PHP_SELF' => '/user-agent.php', 

  'REQUEST_TIME' => 1400747529, 

)

果然在数组中没有HTTP_USER_AGENT这个元素,apache在向另外一台服务器发送请求的时候是没有UA的,之后查了一下资料,get_meta_tags()函数没有伪造UA的能力,所以只能使用其他办法解决了.

后来使用CURL来获取,就获取到了网页,不过使用上稍微麻烦一点,首先伪造UA,获取之后在使用正则表达式分析<meta>.

伪造办法,代码如下:

// 初始化一个 cURL 

$curl = curl_init(); 

 

// 设置你需要抓取的URL 

curl_setopt($curl, CURLOPT_URL, 'http://localhost/user-agent.php'); 

 

// 设置是否将文件头输出到浏览器,0不输出 

curl_setopt($curl, CURLOPT_HEADER, 0); 

 

// 设置UA,这里是将浏览器的UA转发到服务器,也可以手动指定值 

curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 

 

// 设置cURL 参数,要求结果返回到字符串中还是输出到屏幕上。0输出屏幕并返回操作结果的BOOL值,1返回字符串 

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 

// 运行cURL,请求网页 

$data = curl_exec($curl); 

 

// 关闭URL请求 

curl_close($curl); 

 

// 处理获得的数据 

var_dump($data);

希望本文所述对大家的PHP程序设计有所帮助。

 类似资料:
  • 用户代理应用程序由用户设备中的客户端应用程序使用,该客户端应用程序充当脚本语言实例,例如在浏览器中运行的JavaScript。 您可以将用户代理应用程序存储在Web服务器上。 下图显示了客户端用户代理应用程序的体系结构。 Step 1 - 首先,用户使用Google,Facebook,Twitter等认证应用程序访问资源所有者的资源。 Step 2 - 接下来,用户应用程序提供客户端ID和客户端密

  • 的用户代理请求头包含一个特征串,其允许网络协议对等体,以确定请求软件的用户代理的应用程序类型,操作系统,软件供应商或软件版本。 请阅读使用用户代理的浏览器检测,以及为什么向不同的浏览器提供不同的网页或服务通常是一个坏主意。 Header type Request header Forbidden header name no 句法 User-Agent: <product> / <product-

  • 用户代理类提供的功能是,帮助识别是浏览器,还是移动设备或是机器人访问你的站点。另外,你可以得到referrer信息(译注:referrer信息就是访客来源信息,可以参照一般的统计系统来理解),以及语言,和支持的字符集信息。 初始化类 和大多数其他CI类一样,User Agent类也是在你的控制器里使用$this->load->library 方法完成初始化工作$this->load->librar

  • 本文档描述了 Firefox 4 及更高版本中使用的用户代理字符串以及基于 Gecko 2.0 和更高版本的应用程序。有关 Gecko 2.0 中字符串更改的详细信息,请参阅 Firefox 4的最终用户代理字符串(博客文章)。关于用户代理嗅探和这个 Hacks博客文章,另请参阅此文档。 一般形式 Firefox 本身的 UA 字符串被分解为四个组件: Mozilla / 5.0(platform

  • user-agent-utils 是一个用来解析 User-Agent 字符串的 Java 类库。 能识别的内容包括: 常见操作系统 常见 Web 浏览器 很多移动设备 一些平板设备 一些 Email 客户端 webmail clients like Gmail and Hotmail

  • 主要内容:爬虫程序UA信息,重构爬虫UA信息User-Agent 即用户代理,简称“UA”,它是一个特殊字符串头。网站服务器通过识别 “UA”来确定用户所使用的操作系统版本、CPU 类型、浏览器版本等信息。而网站服务器则通过判断 UA 来给客户端发送不同的页面。 我们知道,网络爬虫使用程序代码来访问网站,而非人类亲自点击访问,因此爬虫程序也被称为“网络机器人”。绝大多数网站都具备一定的反爬能力,禁止网爬虫大量地访问网站,以免给网站服务器带来