PHP 爬虫
1、爬虫的本质简单来说,就是读取页面源代码,然后用正则匹配得到想要的数据。
示例如下:
private function spider_jiuyou_list($listname,$url)
{
$fcontents=file_get_contents($url); //读取到字符串中
$table_data = preg_match_all('#<table>(.*?)</table>#si',$fcontents,$match); //正则匹配
if(!$table_data)return; $table_data = $match[0][0]; //将需要的内容赋值给$table_data
$table_array = explode('<tr>',$table_data); //将字符串其变成一维数组
$data = array(); for($i=2;$i<count($table_array);$i++){
$data[$i] = explode('</td>',$table_array[$i]); //将一维数组变成二维数组
for($j = 0;$j<count($data[$i]);$j++){
$data[$i][$j] = preg_replace('/\s(?=\s)/','',trim(strip_tags($data[$i][$j]))); //先把html标签去掉,然后去掉首尾空格,接着把中间的长空格变成一个空格
}
$data[$i][5] = 'jiuyou';
$data[$i][6] = $listname;
$data[$i][7] = date('Y-m-d');
} $kname = array('RANK', 'GAME', 'CATEGORY','BETA', 'DATA','CHANNELNAME','LISTNAME', 'THEDATE');
foreach($data as $key=>&$val){
$val = array_combine($kname,$val); //把二维数组中的第二层键全部变成$kname中的值。
} for($i=2;$i<(count($data)+2);$i++){
$this->db->insert('TBL',$data[$i]);
}
}
2、$a是个json串。json_decode($a),则得到一个里面元素都是对象的数组。json_decode($a,true),就会转换成纯数组。
或者还有一种方法,将json_decode($a)的数组转换成纯数组。
public function object_array($array) {
        if(is_object($array)) {
            $array = (array)$array;
         }
         if(is_array($array)) {
            foreach($array as $key=>$value) {
                 $array[$key] = $this->object_array($value);
            }
         }
         return $array;
    }
PHP 爬虫的更多相关文章
- 设计爬虫Hawk背后的故事
		
本文写于圣诞节北京下午慵懒的午后.本文偏技术向,不过应该大部分人能看懂. 五年之痒 2016年,能记入个人年终总结的事情没几件,其中一个便是开源了Hawk.我花不少时间优化和推广它,得到的评价还算比较 ...
 - Scrapy框架爬虫初探——中关村在线手机参数数据爬取
		
关于Scrapy如何安装部署的文章已经相当多了,但是网上实战的例子还不是很多,近来正好在学习该爬虫框架,就简单写了个Spider Demo来实践.作为硬件数码控,我选择了经常光顾的中关村在线的手机页面 ...
 - Python 爬虫模拟登陆知乎
		
在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...
 - scrapy爬虫docker部署
		
spider_docker 接我上篇博客,为爬虫引用创建container,包括的模块:scrapy, mongo, celery, rabbitmq,连接https://github.com/Liu ...
 - scrapy 知乎用户信息爬虫
		
zhihu_spider 此项目的功能是爬取知乎用户信息以及人际拓扑关系,爬虫框架使用scrapy,数据存储使用mongo,下载这些数据感觉也没什么用,就当为大家学习scrapy提供一个例子吧.代码地 ...
 - 120项改进:开源超级爬虫Hawk 2.0 重磅发布!
		
沙漠君在历时半年,修改无数bug,更新一票新功能后,在今天隆重推出最新改进的超级爬虫Hawk 2.0! 啥?你不知道Hawk干吗用的? 这是采集数据的挖掘机,网络猎杀的重狙!半年多以前,沙漠君写了一篇 ...
 - Python爬虫小白入门(四)PhatomJS+Selenium第一篇
		
一.前言 在上一篇博文中,我们的爬虫面临着一个问题,在爬取Unsplash网站的时候,由于网站是下拉刷新,并没有分页.所以不能够通过页码获取页面的url来分别发送网络请求.我也尝试了其他方式,比如下拉 ...
 - Python多线程爬虫爬取电影天堂资源
		
最近花些时间学习了一下Python,并写了一个多线程的爬虫程序来获取电影天堂上资源的迅雷下载地址,代码已经上传到GitHub上了,需要的同学可以自行下载.刚开始学习python希望可以获得宝贵的意见. ...
 - QQ空间动态爬虫
		
作者:虚静 链接:https://zhuanlan.zhihu.com/p/24656161 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 先说明几件事: 题目的意 ...
 - 让你从零开始学会写爬虫的5个教程(Python)
		
写爬虫总是非常吸引IT学习者,毕竟光听起来就很酷炫极客,我也知道很多人学完基础知识之后,第一个项目开发就是自己写一个爬虫玩玩. 其实懂了之后,写个爬虫脚本是很简单的,但是对于新手来说却并不是那么容易. ...
 
随机推荐
- ICEM(2)—机翼翼稍网格绘制
			
有时我们需要观察翼尖涡,这就需要将机翼全部被网格包围.但是网上比较多的教程都是机翼边缘即为网格边缘,机翼位于网格内部的不多.若是直接将网格拉伸,则会产生结构和非结构网格交错的情况.下面是绘制步骤 1. ...
 - javadoc 生成自定义的标签
			
转自:http://www.blogjava.net/lishunli/archive/2010/01/12/309218.html Technorati 标记: tools 关键词 个性化地生成Ja ...
 - 前端开发week3
			
开发工具学习ing... lesscss 框架 lesscss是一种动态样式语言,属于css预处理语言的一种,它使用类似css的语法,为css的赋予了动态语言的特性,如变量.继承.运算.函数等,更方便 ...
 - 重写equals方法
			
用下面的例子来进行解释. String name; int id; @Override public boolean equals(Object otherObject) { if (this == ...
 - C#_基础
			
1.形参与实参 形参是函数定义时的参数,实参是函数被引用时传给它的参数 2.重载与重写 重载:发生在同一个类中,函数(方法)名相同但参数列表必须不同,返回类型可以不同 重写:发生在继承类之间,子类必须 ...
 - java基础之 GC
			
Java程序员在编码过程中通常不需要考虑内存问题,JVM经过高度优化的GC机制大部分情况下都能够很好地处理堆(Heap)的清理问题.以至于许多Java程序员认为,我只需要关心何时创建对象,而回收对象, ...
 - elasticsearch rpm 安装
			
参考:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/setup-repositories.html Dow ...
 - jQuery初级篇(一)
			
知识说明: jQuery库是一个javascript库文件,它比起javascript来,写的更少,但做得更多,下面便对刚开始学习jQuery,一些基础知识整理出来,供后期翻阅. 一. jQ ...
 - JDK8+Dubbo2.5.2实践
			
几年前就听说过Dubbo的大名,今天由于工作需要,研究一下. 从网上找了一篇文章,非常靠谱,并且提供了简单的示例代码,基本上可以跑起来. 文章地址: http://www.cnblogs.com/Ja ...
 - suspend
			
两个线程的run方法同时调用一个加了同步锁的方法,如果一个线程使用了suspend方法,那么会独占并且锁死这个同步方法,别的线程就永远没有办法进入这个线程了. 特别的是,在main方法中,调用一个线程 ...