PHP CURL抓取网页 simple_html_dom类
抓取网页数据后 数据录入到discuz中
<?php
include('simple_html_dom.php'); function urlText(){
$url = 'http://www.kxt.com/data/3.html';//外汇
$ch=curl_init();
$timeout = 1; // echo CURLOPT_URL; // CURLOPT_URL: 这是你想用PHP取回的URL地址。你也可以在用curl_init()函数初始化时设置这个选项
curl_setopt($ch, CURLOPT_URL, $url); // echo CURLOPT_RETURNTRANSFER; //使用PHP curl获取页面内容或提交数据,有时候希望返回的内容作为变量储存,而不是直接输出。这个时候就必需设置curl的CURLOPT_RETURNTRANSFER选项为1或true。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // CURLOPT_CONNECTTIMEOUT用来告诉PHP脚本在成功连接服务器前等待多久(连接成功之后就会开始缓冲输出),这个参数是为了应对目标服务器的过载,下线,或者崩溃等可能状况;
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); // 可以将他返回的内容赋值给一个变量。只需再前面加上,curl_setopt($ch,CUROPT_RETURNTRANSFER,1);就可以将返回结果赋值给变量了。
//
// 比如,$r=curl_exec($ch);这时返回的结果全部包含再$r中,想什么时候输出什么时候输出,如果不准备要他的结果,那么就将前面的1换成0
$lines_string=curl_exec($ch);
// print_r($lines_string);
curl_close($ch); //提取table
$dom = new simple_html_dom();
$dom->load($lines_string);
$ret = $dom->find(".dataList ul",1)->innertext; //数据分析
// print_r($ret); return $ret;
} $ret = urlText();
// print_r($ret); die;
$arr = explode("</li>",$ret); //一维数组
// echo '<pre>';
// print_r($arr); die; $list = $datatime = array();
if(!empty($arr)){
foreach($arr as $k=>$val){
// print_r($val);
$list = explode("</span>",$val); //二维数组
// echo '<pre>';
// print_r($list);die;
//
// 数组$param 下标和数据库中字段对应
$param = array(
'lmci_dateline' =>str_arr($list[0]), //[lmci_dateline] => 1438358401
'lmci_befor'=>trim(strip_tags($list[2])),
'lmci_publish'=>trim(strip_tags($list[3])),
'lmci_baiyin'=>trim(strip_tags($list[4])),
'lmci_yuanyou'=>trim(strip_tags($list[5])),
'lmci_date'=>trim(strip_tags($list[0])), //日期 [lmci_date] => 2015年08月
);
// echo '<pre>';
// print_r($param);
// if($param['lmci_dateline']!=''){
// 执行 插入到数据库中
// C::t('common_lmci')->insert($param, true);
} }
} function str_arr($str){
$array = explode("年", strip_tags($str));
// echo '<pre>';
// print_r($array);
$arr['year'] = $array[0];
$arr['month'] = str_replace("月", '',$array[1]);
echo '<pre>';
print_r($arr);
$data = mktime(00, 00, 01, $arr['month'] , 1, $arr['year']);
return $data;
}
?>
PHP CURL抓取网页 simple_html_dom类的更多相关文章
- PHP使用CURL抓取网页
CURL是一个非常强大的开源库,支持很多协议,包括HTTP.FTP.TELNET等,我们使用它来发送HTTP请求.它给我 们带来的好处是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS ...
- php使用curl抓取网页自动跳转问题处理
问题分析: 请求抓取http://go.com数据: function curlGet($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, ...
- C语言调用curl库抓取网页图片
思路是先用curl抓取网页源码,然后以关键字寻找出图片网址. #include <stdio.h> #include <stdlib.h> #include <str ...
- C语言调用curl库抓取网页图片(转)
思路是先用curl抓取网页源码,然后以关键字寻找出图片网址. 范例: #include <stdio.h> #include <stdlib.h> #include < ...
- php curl_multi系列函数实现多线程抓取网页
最近几天在做一个多搜索引擎关键字排名查询工具,用于及时方便的了解关键词在各大搜索引擎的排名. 在抓取360搜索的时候,发现360搜索每页只支持显示10个搜索结果,如果想获取100个搜索结果数据,就得搜 ...
- curl抓取页面时遇到重定向的解决方法
用php的curl抓取网页遇到了问题,为阐述方便,将代码简化如下: <?php function curlGet($url) { $ch = curl_init(); curl_setopt($ ...
- PHP利用Curl实现多线程抓取网页和下载文件
PHP 利用 Curl 可以完成各种传送文件操作,比如模拟浏览器发送GET,POST请求等等,然而因为php语言本身不支持多线程,所以开发爬虫程序效率并不高,一般采集 数据可以利用 PHPquery ...
- PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
通过curl_setopt()函数可以方便快捷的抓取网页(采集很方便),curl_setopt 是php的一个扩展库 使用条件:需要在php.ini 中配置开启.(PHP 4 >= 4.0.2) ...
- PHP的cURL库:抓取网页,POST数据及其他,HTTP认证 抓取数据
From : http://developer.51cto.com/art/200904/121739.htm 下面是一个小例程: ﹤?php// 初始化一个 cURL 对象$curl = curl_ ...
随机推荐
- python 单元测试中处理用例失败的情况
今天有一个需求, 在单元测试失败的时候打印一些日志, 我们管他叫 dosomething 吧 ,反正就是做一些操作 查了下并没有查到相关的方法, 于是研究了一波unittest 的源码 发现了这个东西 ...
- UVA1395 Slim Span(kruskal)
题目:Slim Span UVA 1395 题意:给出一副无向有权图,求生成树中最小的苗条度(最大权值减最小权值),如果不能生成树,就输出-1: 思路:将所有的边按权值有小到大排序,然后枚举每一条边, ...
- 第十节:pandas之loc()、iloc()与ix()索引
- GeoTrust 企业(OV)型 通配符(Wildcard) SSL证书
GeoTrust 企业(OV)型 通配符(Wildcard)SSL证书(GeoTrust True BusinessID Wildcard SSL Certificates),支持通配符(Wild ...
- Lucas小记
组合数学全忘了 记笔记记笔记 做个简单题 代码 from bzoj4403 #include <stdio.h> #define p 1000003 typedef long long l ...
- Codeforces Round #413(Div. 1 + Div. 2, combined)——ABCD
题目在这里 A.Carrot Cakes 乱七八糟算出两个时间比较一下就行了 又臭又长仅供参考 #include <bits/stdc++.h> #define rep(i, j, k) ...
- java中的redis工具类
1.redis基础类 package com.qlchat.component.redis.template; import javax.annotation.PostConstruct; impor ...
- Spring Boot-Starter(九)
说明 在使用非spring boot项目我们集成spring mvc mybatis等框架往往需要大量xml配置, spring 的推出是为了解决项目的复杂度,随着项目的增长,xml配置会越来越臃肿, ...
- 洛谷 P1521 求逆序对
题目描述 我们说(i,j)是a1,a2,…,aN的一个逆序对当且仅当i<j且ai>a j.例如2,4,1,3,5的逆序对有3个,分别为(1,3),(2,3),(2,4).现在已知N和K,求 ...
- ant生成war包的简单实现
按网上的操作,实现一下. build.xml: <?xml version="1.0" ?> <project name ="antwebproject ...