`
student_lp
  • 浏览: 437103 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
/**
 * 浏览器模拟工具类
 * @version 1.0 20140724
 */
class cURL { 
	var $headers; 
	var $user_agent; 
	var $compression; 
	var $cookie_file; 
	var $proxy; 
	var $httpStatus;
	function __construct($cookies=TRUE,$cookie='cookies.txt',$compression='gzip',$proxy='') { 
		$this->headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'; 
		$this->headers[] = 'Accept-Encoding: gzip,deflate';
		$this->headers[] = 'Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3';
		$this->headers[] = 'Connection: Keep-Alive'; 
		$this->user_agent = 'Mozilla/5.0 (Windows NT 5.1; rv:30.0) Gecko/20100101 Firefox/30.0'; 
		$this->compression=$compression; 
		$this->proxy=$proxy; 
		$this->cookies=$cookies; 
		if ($this->cookies == TRUE) 
			$this->cookie($cookie); 
	} 
	function cookie($cookie_file) { 
		if (file_exists($cookie_file)) { 
			$this->cookie_file=$cookie_file; 
		} else { 
			fopen($cookie_file,'w') or $this->error('The cookie file could not be opened. Make sure this directory has the correct permissions'); 
			$this->cookie_file=$cookie_file; 
			fclose($this->cookie_file); 
		} 
	} 
	function get($url) { 
		$process = curl_init($url); 
		curl_setopt($process, CURLOPT_HTTPHEADER, $this->headers); 
		curl_setopt($process, CURLOPT_HEADER, 0); 
		curl_setopt($process, CURLOPT_USERAGENT, $this->user_agent); 
		if ($this->cookies == TRUE) 
			curl_setopt($process, CURLOPT_COOKIEFILE, $this->cookie_file); 
		if ($this->cookies == TRUE) 
			curl_setopt($process, CURLOPT_COOKIEJAR, $this->cookie_file); 
		curl_setopt($process,CURLOPT_ENCODING , $this->compression); 
		curl_setopt($process, CURLOPT_TIMEOUT, 30); 
		if ($this->proxy) 
			curl_setopt($process, CURLOPT_PROXY, $this->proxy); 
		curl_setopt($process, CURLOPT_RETURNTRANSFER, 1); 
		curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1); 
		
		curl_setopt($process, CURLOPT_SSL_VERIFYPEER, FALSE);	// https请求 不验证证书和hosts
		curl_setopt($process, CURLOPT_SSL_VERIFYHOST, FALSE);
		
		$return = curl_exec($process); 
		$this->httpStatus = curl_getinfo($process,CURLINFO_HTTP_CODE); //获取本次请求返回的http状态
		curl_close($process); 
		return $return; 
	} 
	function post($url,$data) { 
		$process = curl_init($url); 
		curl_setopt($process, CURLOPT_HTTPHEADER, $this->headers); 
		curl_setopt($process, CURLOPT_HEADER, 1); 
		curl_setopt($process, CURLOPT_USERAGENT, $this->user_agent); 
		if ($this->cookies == TRUE) 
			curl_setopt($process, CURLOPT_COOKIEFILE, $this->cookie_file); 
		if ($this->cookies == TRUE) 
			curl_setopt($process, CURLOPT_COOKIEJAR, $this->cookie_file); 
		curl_setopt($process, CURLOPT_ENCODING , $this->compression); 
		curl_setopt($process, CURLOPT_TIMEOUT, 30); 
		if ($this->proxy) 
			curl_setopt($process, CURLOPT_PROXY, $this->proxy); 
		curl_setopt($process, CURLOPT_POSTFIELDS, $data); 
		curl_setopt($process, CURLOPT_RETURNTRANSFER, 1); 
		curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1); 
		curl_setopt($process, CURLOPT_POST, 1); 
		
		curl_setopt($process, CURLOPT_SSL_VERIFYPEER, FALSE);	// https请求 不验证证书和hosts
		curl_setopt($process, CURLOPT_SSL_VERIFYHOST, FALSE);
		
		$return = curl_exec($process); 
		$this->httpStatus = curl_getinfo($process,CURLINFO_HTTP_CODE); //获取本次请求返回的http状态
		curl_close($process); 
		return $return; 
	} 
	/**
	 * 返回请求后,服务端返回的状态码
	 * @return mixed
	 */
	function getHttpCode(){
		return $this->httpStatus;
	}
	/**
	 * 输出错误信息
	 * @param unknown_type $error
	 */
	function error($error) { 
		echo "<center><div style='width:500px;border: 3px solid #FFEEFF; padding: 3px; background-color: #FFDDFF;font-family: verdana; font-size: 10px'><b>cURL Error</b><br>$error</div></center>"; 
		die; 
	} 
} 
//echo $cc->get('http://www.baidu.com'); 
//$cc->post('http://www.example.com','foo=bar'); 

 

分享到:
评论

相关推荐

    tagui_php_浏览器_源码 (2).zip

    【标题】"TagUI PHP 浏览器自动化工具源码" 这个标题提到的是TagUI工具的一个版本,专门针对PHP环境,用于实现浏览器自动化。TagUI是一个开源的自动化工具,广泛应用于网页交互自动化任务,比如数据抓取、网页测试...

    php snoopy 模拟表单提交 数据抓取

    总结来说,Snoopy为PHP开发者提供了一种方便的工具,能够模拟浏览器行为,执行表单提交和数据抓取。通过理解其工作原理和使用方法,我们可以构建自己的数据抓取脚本,高效地获取网络上的信息。然而,值得注意的是,...

    PHP模拟baidu蜘蛛抓取网站链接

    PHP提供了DOMDocument和DOMXPath类,可以方便地解析和操作XML或HTML文档。通过这些工具,我们可以找到页面中的所有链接元素(标签),并提取出href属性值,即链接地址。 对于“模拟百度蜘蛛”,我们需要关注百度...

    mimini:迷你PHP浏览器

    总之,"Mimini: 迷你PHP浏览器"项目利用了PHP的网络通信能力和HTML解析功能,为开发者提供了一个轻量级的工具,以执行自动化任务。通过深入理解PHP的相关函数和类库,开发者可以充分利用Mimini进行各种Web自动化操作...

    php本地测试工具

    标题提到的"php本地测试工具"正是这样一款软件,它旨在帮助程序员在个人计算机上模拟服务器环境,快速验证代码功能,提高开发效率。 描述中提到该工具“小巧”,这意味着它可能具有轻量级、快速启动和占用资源少的...

    Selenium Webdriver使用已打开的浏览器

    Selenium Webdriver是一款强大的自动化测试工具,用于模拟真实用户在网页上的交互操作。它支持多种浏览器,如Chrome、Firefox、IE等,使得测试脚本可以在不同的浏览器环境下运行。标题"使用已打开的浏览器"提示我们...

    微信遮罩层 在微信中打开后会提示用本地浏览器

    5. **利用微信开发者工具**:微信开发者工具提供了一个模拟微信内置浏览器环境的平台,可以在这里测试和调试你的网页,及时发现和修复兼容性问题。 6. **合理使用第三方库和框架**:选择那些注重兼容性的第三方库和...

    50个非常有用的PHP工具.pdf

    标题提及的《50个非常有用的PHP工具.pdf》是一份包含多种PHP开发工具的资源集合,这些工具覆盖了从调试、测试、优化、文档生成、安全防护到代码处理和项目管理等多个方面,对于PHP开发者来说极具价值。以下将对部分...

    PHP注入工具

    在PHP注入工具中,可能被用作HTTP请求的组件,以模拟用户浏览器行为,与目标网站交互,收集有关注入点的信息。然而,ActiveX技术存在安全隐患,不安全的使用可能导致远程代码执行等问题,因此,现代的网络安全工具...

    php 漏洞查找工具

    "Php Vulnerability Analyzer.exe"是一个可能的PHP漏洞分析器的可执行文件,它可能是这样的工具之一,用于运行在Windows操作系统上。该工具可能包含了扫描PHP源代码、分析日志、模拟攻击场景等功能,帮助用户快速...

    一个php站点采集工具

    这类工具通常被称为Web爬虫或网页抓取器,它们通过模拟浏览器的行为,遍历和解析HTML、XML等网页结构,提取所需的信息。在互联网大数据时代,采集工具扮演了至关重要的角色,无论是数据分析、内容聚合还是市场研究,...

    兼容所有浏览器的快速Web打印控件

    在IT行业中,Web打印控件是一种关键的技术工具,它允许用户在不同的Web浏览器上便捷地打印网页内容。本文将深入探讨“兼容所有浏览器的快速Web打印控件”这一主题,结合给定的描述和标签,我们将关注C#、JSP、PHP这...

    dusk易于使用的浏览器自动化和测试API

    标题 "dusk 易于使用的浏览器自动化和测试API" 提到的 "dusk" 是一个专为 PHP 开发者设计的浏览器自动化和测试工具。这个工具使得编写针对 Web 应用程序的端到端测试变得更加简单和高效。"易于使用" 的特性意味着它...

    利用浏览器的Javascript控制台调试PHP程序

    通过创建一个名为`WebConsole`的PHP类,我们可以模拟不同的日志级别(如`info`、`warn`、`log`和`error`),并将这些信息发送到浏览器控制台。这样,开发人员无需修改PHP代码中的输出语句,即可在浏览器中查看调试...

    基于PHP的snoopy强大的PHP采集类源码.zip

    【标题】"基于PHP的snoopy强大的PHP采集类源码.zip" 提供的是一个用于网页数据抓取的工具,Snoopy是一个流行的PHP类库,专为处理Web抓取和模拟浏览器行为而设计。在PHP开发中,当需要从网站获取数据而没有提供API时...

    基于PHP的iWebCrawler搜索爬虫加速工具 php版.zip

    因此,爬虫可能需要模拟浏览器行为,如设置自定义User-Agent,甚至处理JavaScript执行。 10. **SEO优化**:既然这个工具被称为“搜索爬虫加速工具”,那么它很可能包含了针对SEO的特定功能,比如关键词分析、链接...

    基于PHP的钢笔手写体生成工具php版源码.zip

    【标题】中的“基于PHP的钢笔手写体生成工具php版源码”指的是一个使用PHP编程语言开发的软件工具,其主要功能是能够生成模拟钢笔手写的文本效果。在网页应用或个性化设计中,这种功能可以让用户感受到更加亲切和...

    php应用curl扩展抓取网页类.zip

    其他可能的选项包括`CURLOPT_FOLLOWLOCATION`(允许重定向)和`CURLOPT_USERAGENT`(设置用户代理字符串,以模拟浏览器行为)。 3. **执行请求**:使用`curl_exec()`执行HTTP请求,并获取网页内容。这通常在类的一...

    php的curl登录采集的类.zip

    总的来说,"php的curl登录采集的类.zip"文件提供了一个强大的工具,帮助开发者轻松地处理复杂的登录和数据抓取任务。通过理解cURL的工作原理以及这个类的内部实现,我们可以更有效地利用这个类库进行PHP的网络操作。

    php采集类。含自动下载图片到本地

    Snoopy是一个著名的PHP网络爬虫类,它允许开发者模拟浏览器发送HTTP请求,获取网页内容。Snoopy类提供了GET和POST方法,可以处理登录、Cookie等复杂场景,是进行网页采集的理想工具。通过实例化Snoopy类,并调用其...

Global site tag (gtag.js) - Google Analytics