php实战之使用curl抓取网站数据
来源:互联网 发布:ubuntu 漏洞提权 编辑:程序博客网 时间:2024/05/16 17:28
之前做过一个网站数据抓取的工作,让我充分感受到了计算机科学的生产力。之前为了抓取网站源数据的数据,我们公司只能依靠人多力量大的方式,一点一点从源网站抠,整整干了三天,干得头昏脑涨,听老板说以前有php人员抓取过数据,但是抓取的数据不理想,不能入库,只能换成人工的了。趁着学习这段时间,整了整这个项目,不负有心人。在研究源数据网站的数据传输方式以后,突然发现,原来获取这些数据如此简单:程序源码如下:
<?phpheader("content-type:text/html;charset=utf-8");ini_set('max_execution_time', 300);function getScholar($start,$end){$result = array();for($i=$start;$i<$end;$i++){ $url = "http://****.gov.cn*****"; $post_data = array ( "currentPage" => $i,//当前页 "pageSize" =>7 , ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 我们在POST数据哦! curl_setopt($ch, CURLOPT_POST, 1); // 把post的变量加上 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); $output = curl_exec($ch); $output_json = json_decode($output); curl_close($ch); //var_dump($output_json); //die(); foreach($output_json->projectList as $k => $v){ $result[$v->code][]=$v->code; $result[$v->code][]=$v->name; };}$end_end = $end-1;$fp = fopen("output-{$start}-{$end_end}.csv",'w');//打开文件 foreach ($result as $v){ ob_clean(); if(fputcsv($fp,$v)===false){//加数组数据放到csv文件中 die("can't write csv line"); } }fclose($fp) or die("can't close scholar.csv");if(count($result)!=($end-$start)*7){ echo "数据出现错误"; echo "<br/>"; echo count($result); exit;} echo "数据抓取完成,共抓取到".count($result)."条记录";}getScholar(3950,4000);//读取3950-4000页的数据
这里主要用到了curl库,在刚开始用的时候,程序显示curl_init()不可用,但是这是已经将php的curl扩展打开了,后来百度知道,原来是在window目录下少了libeay32.dll、ssleay32.dll这两个文件,将这两个文件从php/ext 复制到windows 的system32目录下,然后重启Apache就可以了。
0 0
- php实战之使用curl抓取网站数据
- PHP使用cURL抓取数据
- php使用phpQuery抓取歌词网站海量数据实战
- php curl 抓取数据
- 使用PHP curl模拟浏览器抓取网站信息
- 【转载】PHP使用CURL抓取网站内容基础
- php curl 代理 抓取数据
- php中CURL技术模拟登陆抓取数据实战,抓取某校教务处学生成绩。
- php使用curl存取cookie进行登录抓取数据示例
- PHP使用CURL抓取网页
- PHP使用CURL抓取网页
- php 数据抓取curl+simple_html_dom总结
- PHP CURL模拟登录抓取数据
- curl入门知识之抓取二进制数据
- php之curl使用
- php curl函数模拟浏览器抓取网站信息
- php curl 多线程抓取
- 使用javascript抓取网站数据
- birt修改sql
- Learn Python The Hard Way 总结与勘误
- 【Java】CGlib动态代理
- 模仿playnext网站hover后抖动的效果
- 拼图小游戏"ST--拼图“开发篇之主要功能实现(一)
- php实战之使用curl抓取网站数据
- u-boot 分析(转自360doc)
- 多线程锁和反射的再次理解
- iOS关于RunLoop和Timer
- VS项目属性的配置总结
- jQuery源码分析之ajaxPrefilters方法
- hot and cold observable
- jquery表单验证
- jquery获取节点实现隐藏和显示