php curl 正则获取网页标题

<?php
/****/
//Gary xu
//[email protected]
/****/
namespace Xuyaoxiang;

	class Snoopy {

	public $pattern_array=array(
	‘title‘=>‘/<title>(\s*.*)<\/title>/i‘,
	‘description‘=>‘/<meta +name="[d|D]escription" +content="(.*)" +\/>/‘,
	‘charset‘=>‘/charset=\"?([\w-]+)\"?/i‘,
	);

	public $user_agent=‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36‘; //模拟浏览器头部数据

	public $target_code="utf-8"; //目标编码

	public $url;

	public $data;

	public $pattern_key;

	function __construct($url)
	{
			$this->url=$url;
	}

	public function set_pattern($key,$val)
	{
		$this->pattern_array[$key]=$val;
	} 

	function get_content($pattern_key)
	{
		$this->pattern_key=$pattern_key;

		if($this->pattern_key==‘‘){return false;}

		$this->curl_get_data();

		if($this->data==false){return false;} 

		$charset=$this->get_charset();

		$this->check_charset($charset);

		$content=$this->get_key_content();

		return  trim($content[1]);
	}

			function curl_get_data()
		{
				$curl=curl_init();
				// 设置你需要抓取的URL

				curl_setopt($curl, CURLOPT_URL, $this->url);

				// 设置header
				curl_setopt($curl, CURLOPT_HEADER, 0);

				// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
				curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

				curl_setopt($curl, CURLOPT_USERAGENT, $this->user_agent);

				// 运行cURL,请求网页

				$this->data = curl_exec($curl);	

				curl_close($curl);
		}

		function check_charset($page_charset)
		{
			 if($page_charset!=$this->target_code)
			 {
				$this->data=mb_convert_encoding($this->data,$this->target_code,$page_charset);
			 }
		}

		function get_key_content()
		{
			preg_match($this->pattern_array[$this->pattern_key],$this->data,$content);
		    return $content;
		}

		function get_charset()
		{
			preg_match($this->pattern_array[‘charset‘],$this->data,$reg_charset);
			return $page_charset=strtolower($reg_charset[1]);
		}
}

header("Content-type:text/html;charset=utf-8");
	 $snoopy=new snoopy("http://www.qq.com");

	 $title=$snoopy->get_content(‘title‘);

	 print_r($title);
?>

  

时间: 2024-10-08 12:57:39

php curl 正则获取网页标题的相关文章

php正则获取网页标题、关键字、网页描述代码

php正则获取网页关键字,代码如下: function get_keywords($html) { $html=strtolower($html); preg_match("@<head[^>]*>(.*?)</head>@si",$html, $regs); $headdata = $regs[1]; preg_match("/<meta +name *=["']?keywords["']? *content=[&qu

Python2获取网页标题

Python获取网页标题 使用Python2.x的urllib2和lxml,速度应该还快于BeautifulSoup4(话说回来,为什么大家都要用BS4呢?一个XPATH不就完了吗) 没有安装过的,用pip安装一下 pip install lxml Shell演示: >> from lxml import etree >> import urllib2 >> page = etree.HTML(urllib2.urlopen('https://blog.csdn.net

用EXCEL批量获取网页标题的方法

这段时间准备做淘宝,但不知道卖什么产品,因此想从一些B2B 网站上扒拉一些产品词下来挨个研究,但一个一个的打开网页查看产品太慢太费事,但想到这些产品词都存在于网页标题上,因此想到了用excel来批量获取网页的标题.经过一番查找,在网上找到了两种方法(其实是两组代码). 打开excel找到开发者工具,点击"Visual Basic" 在下图所示位置右键点击添加模块 填入如下代码: Function Title(url As String) As String With CreateObj

PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题

PHP CURL与file_get_contents函数都可以获取远程服务器上的文件保存到本地,但在性能上面两者完全不在同一个级别,下面我先来介绍PHP CURL或file_get_contents函数应用例子,然后再简单的给各位介绍一下它们的一些小区别吧. 推荐方法 CURL获取 ? 1 2 3 4 5 6 7 8 9 10 11 12 <?php $c = curl_init(); $url = 'www.jb51.net'; curl_setopt($c, CURLOPT_URL, $ur

Jython使用jsoup获取网页标题与链接信息

目的:获取网站链接,可以实现无人工干预的资料获取. 1 java实现的jsoup HTML解析库 下载:http://jsoup.org/ 2 工作平台Ubuntu 3 使用Jython调用jsoup实现提取网页联接信息 代码: #coding=utf-8 #doc from http://jsoup.org/apidocs/ from org.python.core import codecs codecs.setDefaultEncoding('utf-8') import sys #pri

php获取网页标题和内容函数(不包含html标签)

码如下:function getPageContent($url) { //$url='http://www.ttphp.com; $pageinfo = array();           $pageinfo[content_type] = '';           $pageinfo[charset] = '';           $pageinfo[title] = '';           $pageinfo[description] = '';           $pagei

关于在用curl函数post网页数据时,遇上表单提交 type为submit 类型而且没有name和id时可能遇到的问题及其解决方法

curl函数库实现爬网页内容的链接在 http://www.cnblogs.com/linguanh/p/4292316.html 下面这个是没有name和id 标识的 <input type="submit" value="OnClick"/> 这种类型,在填写完信息后,我们一般需要点一个按钮去触发提交事件. 我之前介绍的用curl去获取网页cookie 的文章中 出现过的一个 变量 data,即要传送过去的 数据, 这个数据一般是网站的登陆账号和密码

Android中WebView获取网页中标题 ,内容, 图片的方法

如题,在Android中WebView获取网页中标题 ,内容, 图片的方法 首先是获取标题,在new WebChromeClient(){}中重写onReceivedTitle()方法 @Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); // loge.e("__页面标题__"+title); } 获取内容,是参考的这边的 http

在php中分别使用curl的post提交数据的方法和get获取网页数据的方法

在php中分别使用curl的post提交数据的方法和get获取网页数据的方法整理分享一下额,具体代码如下: (1)使用php curl获取网页数据的方法: $ch=curl_init(); //设置选项,包括URL curl_setopt($ch,CURLOPT_URL,"http://www.nettuts.com"); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); //执行