curl抓取信息
<?php
$hotel = new curl(false,0);
$str = $hotel -> post("http://www.todayinns.com/login.php?do=login",array("Referer"=>"","username"=>"18612690317","password"=>"2010"))->execute();
echo $hotel -> get("http://www.todayinns.com/my_jf.php")->execute();; /**
* 一个基础的CURL类
*
* @author Smala
*/
class curl{
public $ch;
public $cookie = '/cookie';
public $rstr;
public $info; public function __construct($ssl=true,$cookieName="tmp.cookie"){ $this -> cookie = dirname(__FILE__)."/".$cookieName;
$this -> ch = curl_init();
curl_setopt($this -> ch ,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36');//设置用户代理
curl_setopt($this -> ch,CURLOPT_COOKIEJAR,$this -> cookie);
curl_setopt($this -> ch,CURLOPT_COOKIEFILE,$this -> cookie); if($ssl){
curl_setopt($this -> ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($this -> ch, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($this -> ch,CURLOPT_RETURNTRANSFER,1);
} public function set($opt){
foreach($opt as $key => $value)
curl_setopt($this -> ch,$key,$value);
return $this;
}
public function get($url,$data=array()){
$queryString = http_build_query($data);
if(!empty($queryString)){
$url.= '?'.$queryString;
}
curl_setopt($this -> ch,CURLOPT_URL,$url);
return $this; }
public function setHeader($data=array()){
curl_setopt($this -> ch,CURLOPT_HTTPHEADER,$data);
return $this;
}
public function post($url,$data = array()){
$post = '';
foreach($data as $key=>$value){
$post .= $key.'='.$value."&"; }
$post = trim($post,'&');
curl_setopt($this -> ch,CURLOPT_URL,$url);
curl_setopt($this -> ch,CURLOPT_POST,1);
curl_setopt($this -> ch,CURLOPT_POSTFIELDS,$post);
return $this;
}
public function execute($close=true){ $this -> rstr = curl_exec($this -> ch);
$this -> info = curl_getinfo($this -> ch);
if($close){
// curl_close($this -> ch);
}
return $this -> rstr; }
public function close(){
curl_close($this -> ch);
} }
$hotel = new curl(false,0);
$str = $hotel -> post("http://www.todayinns.com/login.php?do=login",array("Referer"=>"","username"=>$_COOKIE['the_tel'],"password"=>$_COOKIE['password']))->execute();
$arrs = $hotel -> get("http://www.todayinns.com/my_ticket.php")->execute();
preg_match_all('/<dd class="c">(.*?)<\/dd>/is',$arrs,$tmp);
preg_match_all( '/<tr[^>]*([\s\S]*?)<\/tr>/i', $tmp[1][0], $arr );
preg_match_all( '/<td>(.*?)<\/td>/i', $arr[1][1], $volume );
curl抓取信息的更多相关文章
- 调用 CURL 使用正则抓取信息
Class MyCurl{ protected $_pdo; //构造方法 链接数据库 public function __construct(){ $this->_pdo ...
- php多线程抓取信息测试例子
php多线程抓取信息测试例子 PHP 5.3 以上版本,使用pthreads PHP扩展,可以使PHP真正地支持多线程.多线程在处理重复性的循环任务,能够大大缩短程序执行时间. PHP扩展下载:htt ...
- PHP使用CURL抓取网页
CURL是一个非常强大的开源库,支持很多协议,包括HTTP.FTP.TELNET等,我们使用它来发送HTTP请求.它给我 们带来的好处是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS ...
- PHP CURL 抓取失败 自己调试
蛋疼的一下午,物理机win7旗舰版+APACHE2 ,CURL抓取一直成功. 虚拟机ubuntu+apache2一直抓取失败. 晚上,问个仁兄才知道,CURL可以调试: 参考这位兄台: 地址 curl ...
- shell用curl抓取页面乱码,参考一下2方面(转)
1.是用curl抓取的数据是用类似gzip压缩后的数据导致的乱码.乱码:curl www.1ting.com |more乱码:curl -H "Accept-Encoding: gzip&q ...
- PHP cURL抓取网上图片
cURL的底层是由一个命令行工具实现的,用于获取远程文件或传输文件,更多的情况是用来模拟get/post表单提交.也可以用户文件上传,爬取文件,支持FTP/FTPS,HTTP/HTTPS等协议,通俗来 ...
- java练习题(字符串类):显示4位验证码、输出年月日、从XML中抓取信息
1.显示4位验证码 注:大小写字母.数字混合 public static void main(String[] args) { String s="abcdefghijklmnopqrstu ...
- php curl抓取远程页面内容的代码
使用php curl抓取远程页面内容的例子. 代码如下: <?php /** * php curl抓取远程网页内容 * edit by www.jbxue.com */ $curlPost = ...
- 使用file_get_contents()和curl()抓取网络资源的效率对比
使用file_get_contents()和curl()抓取网络资源的效率对比 在将小程序用户头像合成海报的时候,用到了抓取用户头像对应的网络资源,那么抓取方式有很多,比如 file_get_cont ...
随机推荐
- 再次探讨C++的动态绑定和静态绑定
以前在学习C++的时候,对动态绑定和静态绑定的理解是:静态绑定是编译时决定的,非虚函数基本都是静态绑定:而动态绑定用于虚函数,是为了实现多态.这样理解没什么大的问题,但我一直疑惑的是,既然静态绑定可以 ...
- 转:支撑Github的开源技术
原文来自于:http://www.infoq.com/cn/news/2014/03/projects-power-github Github在3月19号开放了新的项目展示页面(Showcase),S ...
- Go Cookie 练习
package main import ( "io" "log" "net/http" ) func main() { http.Handl ...
- 让自己的C++程序(非服务程序)运行为一个windows service
因为项目的一些变化和原因,需要把数据处理的一个后台程序创建为一个windows服务,运行以下命令能创建成功: sc create "MyApp Service Name" binP ...
- [LeetCode] 148. Sort List 解题思路
Sort a linked list in O(n log n) time using constant space complexity. 问题:对一个单列表排序,要求时间复杂度为 O(n*logn ...
- OI生涯中三届NOIP(2012-2014)流水账
NOIP2012: 才摸了三四个月OI就上阵当炮灰,果然一下就被轰得渣都不剩了. D1看到T1这道模拟水题时很激动,立马就把它A了.然后T2就不会了,果断写了个阶乘的暴力,根本没有想过什么排序贪心.T ...
- .Net词汇表中常见缩略语汇总
.Net中存在大量的专业词汇(详细列表,请参考:Visual Studio 和 .NET Framework 词汇表),其中很多词汇常常采用缩略语的形式被大量使用. 在阅读.Net书籍或网络资料时,便 ...
- Java[2] 分布式服务架构之java远程调用技术浅析(转http://www.uml.org.cn/zjjs/201208011.asp)
转自:http://www.uml.org.cn/zjjs/201208011.asp 在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如: ...
- Java 截取反斜杠--java使用split拆分特殊字符
Java 截取反斜杠 replaceAll和split (“\”) 问题解决办法 xxx.split("\\") 显然得不到想要的结果 正确方法 xxx.split("\ ...
- linux下javaEE系统安装部署
最近公司在将服务器往阿里云上面迁移,所以需要重新在linux上面安装相关的软件以及部署项目,这里用到的linux版本为centos7.0,需要安装的软件有 jdk1.7.mysql5.6.mongo3 ...