/** * 浏览器模拟工具类 * @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 浏览器自动化工具源码" 这个标题提到的是TagUI工具的一个版本,专门针对PHP环境,用于实现浏览器自动化。TagUI是一个开源的自动化工具,广泛应用于网页交互自动化任务,比如数据抓取、网页测试...
总结来说,Snoopy为PHP开发者提供了一种方便的工具,能够模拟浏览器行为,执行表单提交和数据抓取。通过理解其工作原理和使用方法,我们可以构建自己的数据抓取脚本,高效地获取网络上的信息。然而,值得注意的是,...
PHP提供了DOMDocument和DOMXPath类,可以方便地解析和操作XML或HTML文档。通过这些工具,我们可以找到页面中的所有链接元素(标签),并提取出href属性值,即链接地址。 对于“模拟百度蜘蛛”,我们需要关注百度...
总之,"Mimini: 迷你PHP浏览器"项目利用了PHP的网络通信能力和HTML解析功能,为开发者提供了一个轻量级的工具,以执行自动化任务。通过深入理解PHP的相关函数和类库,开发者可以充分利用Mimini进行各种Web自动化操作...
标题提到的"php本地测试工具"正是这样一款软件,它旨在帮助程序员在个人计算机上模拟服务器环境,快速验证代码功能,提高开发效率。 描述中提到该工具“小巧”,这意味着它可能具有轻量级、快速启动和占用资源少的...
Selenium Webdriver是一款强大的自动化测试工具,用于模拟真实用户在网页上的交互操作。它支持多种浏览器,如Chrome、Firefox、IE等,使得测试脚本可以在不同的浏览器环境下运行。标题"使用已打开的浏览器"提示我们...
5. **利用微信开发者工具**:微信开发者工具提供了一个模拟微信内置浏览器环境的平台,可以在这里测试和调试你的网页,及时发现和修复兼容性问题。 6. **合理使用第三方库和框架**:选择那些注重兼容性的第三方库和...
标题提及的《50个非常有用的PHP工具.pdf》是一份包含多种PHP开发工具的资源集合,这些工具覆盖了从调试、测试、优化、文档生成、安全防护到代码处理和项目管理等多个方面,对于PHP开发者来说极具价值。以下将对部分...
在PHP注入工具中,可能被用作HTTP请求的组件,以模拟用户浏览器行为,与目标网站交互,收集有关注入点的信息。然而,ActiveX技术存在安全隐患,不安全的使用可能导致远程代码执行等问题,因此,现代的网络安全工具...
"Php Vulnerability Analyzer.exe"是一个可能的PHP漏洞分析器的可执行文件,它可能是这样的工具之一,用于运行在Windows操作系统上。该工具可能包含了扫描PHP源代码、分析日志、模拟攻击场景等功能,帮助用户快速...
这类工具通常被称为Web爬虫或网页抓取器,它们通过模拟浏览器的行为,遍历和解析HTML、XML等网页结构,提取所需的信息。在互联网大数据时代,采集工具扮演了至关重要的角色,无论是数据分析、内容聚合还是市场研究,...
在IT行业中,Web打印控件是一种关键的技术工具,它允许用户在不同的Web浏览器上便捷地打印网页内容。本文将深入探讨“兼容所有浏览器的快速Web打印控件”这一主题,结合给定的描述和标签,我们将关注C#、JSP、PHP这...
标题 "dusk 易于使用的浏览器自动化和测试API" 提到的 "dusk" 是一个专为 PHP 开发者设计的浏览器自动化和测试工具。这个工具使得编写针对 Web 应用程序的端到端测试变得更加简单和高效。"易于使用" 的特性意味着它...
通过创建一个名为`WebConsole`的PHP类,我们可以模拟不同的日志级别(如`info`、`warn`、`log`和`error`),并将这些信息发送到浏览器控制台。这样,开发人员无需修改PHP代码中的输出语句,即可在浏览器中查看调试...
【标题】"基于PHP的snoopy强大的PHP采集类源码.zip" 提供的是一个用于网页数据抓取的工具,Snoopy是一个流行的PHP类库,专为处理Web抓取和模拟浏览器行为而设计。在PHP开发中,当需要从网站获取数据而没有提供API时...
因此,爬虫可能需要模拟浏览器行为,如设置自定义User-Agent,甚至处理JavaScript执行。 10. **SEO优化**:既然这个工具被称为“搜索爬虫加速工具”,那么它很可能包含了针对SEO的特定功能,比如关键词分析、链接...
【标题】中的“基于PHP的钢笔手写体生成工具php版源码”指的是一个使用PHP编程语言开发的软件工具,其主要功能是能够生成模拟钢笔手写的文本效果。在网页应用或个性化设计中,这种功能可以让用户感受到更加亲切和...
其他可能的选项包括`CURLOPT_FOLLOWLOCATION`(允许重定向)和`CURLOPT_USERAGENT`(设置用户代理字符串,以模拟浏览器行为)。 3. **执行请求**:使用`curl_exec()`执行HTTP请求,并获取网页内容。这通常在类的一...
总的来说,"php的curl登录采集的类.zip"文件提供了一个强大的工具,帮助开发者轻松地处理复杂的登录和数据抓取任务。通过理解cURL的工作原理以及这个类的内部实现,我们可以更有效地利用这个类库进行PHP的网络操作。
Snoopy是一个著名的PHP网络爬虫类,它允许开发者模拟浏览器发送HTTP请求,获取网页内容。Snoopy类提供了GET和POST方法,可以处理登录、Cookie等复杂场景,是进行网页采集的理想工具。通过实例化Snoopy类,并调用其...