php 爬虫的几种方式
来源:互联网 发布:linux运维是什么意思 编辑:程序博客网 时间:2024/06/05 19:04
以下内容转载而来,Simple-Html-Dom 这个我自己写了一个扒了不得姐上50页的文字笑话,亲测可用,其他的方法均未未测试。
网上有很多开源的框架,想研究的话可以找一下研究一下。
------------------------------------------------------
正文:
抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐。LZ总结了几种常用的、易于实现的网页抓取方式,如果熟悉JQuery选择器,这几种框架会相当简单。
一、phpQuery
项目地址:http://code.google.com/p/phpquery/
文档:https://code.google.com/p/phpquery/wiki/Manual
测试:抓取我网站首页的article标签元素,然后出书其下h2标签的html值
<?phpinclude 'phpQuery/phpQuery.php'; phpQuery::newDocumentFile('http://www.ido321.com/'); $artlist = pq("article"); foreach($artlist as $title){ echo pq($title)->find('h2')->html()."<br/>"; } ?>
二、Simple-Html-Dom
项目地址: http://simplehtmldom.sourceforge.net/
文档: http://simplehtmldom.sourceforge.net/manual.htm
测试:抓取我网站首页的所有链接
<?phpinclude 'simple_html_dom.php';//使用url和file都可以创建DOM$html = file_get_html('http://www.ido321.com/');//找到所有图片// foreach($html->find('img') as $element)// echo $element->src . '<br>';//找到所有链接foreach($html->find('a') as $element) echo $element->href . '<br>'; ?>
三、Snoopy
项目地址:http://code.google.com/p/phpquery/
文档:http://code.google.com/p/phpquery/wiki/Manual
测试:抓取我的网站首页
<?phpinclude("Snoopy.class.php");$url = "http://www.ido321.com";$snoopy = new Snoopy;$snoopy->fetch($url); //获取所有内容 echo $snoopy->results; //显示结果// echo $snoopy->fetchtext ;//获取文本内容(去掉html代码)// echo $snoopy->fetchlinks($url) ;//获取链接// $snoopy->fetchform ;//获取表单 ?>
四、手动编写爬虫
如果编写能力ok,可以手写一个网页爬虫,实现网页抓取。网上有千篇一律的介绍此方法的文章,LZ就不赘述了。有兴趣了解的,可以百度 php 网页抓取。
ps:资源分享
常见的开源爬虫项目请戳:http://blog.chinaunix.net/uid-22414998-id-3774291.html
注:原文博客地址 http://www.ido321.com/1158.html
- php 爬虫的几种方式
- 爬虫之C#实现的几种方式
- PHP 页面跳转的几种方式
- php取整的几种方式
- php抓取页面的几种方式
- php抓取页面的几种方式
- php取整的几种方式
- php生成二维码的几种方式
- php取整的几种方式
- php抓取页面的几种方式
- php取整的几种方式
- php取整的几种方式
- PHP抓取页面的几种方式
- PHP抓取页面的几种方式
- PHP抓取页面的几种方式
- PHP抓取页面的几种方式
- php生成二维码的几种方式
- PHP抓取页面的几种方式
- Android studio 导入依赖工程
- 车站分级 洛谷p1983
- jQuery中length慢
- unity build webGL失败,Build error with IL2CPP 解决办法
- Oracle数据库概述
- php 爬虫的几种方式
- 关于Oracle存储过程中是否需要写commit的问题
- .Net4.0 任务(Task)
- Tkinter PhotoImage 踩坑记录
- 【Unity3D技术文档翻译】第1.2篇 为打包 AssetBundles 准备资产
- JavaScript高级程序设计:第9.10章阅读笔记
- 十、matplotlib系列---pyplot散点图的绘制
- elasticsearch配置详解
- fpga hdmi接收和发送部分调试(2)