教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 几种PHP实现网页抓取的程序代码

几种PHP实现网页抓取的程序代码

发布时间:2016-10-16   编辑:jiaochengji.com
教程集为您提供几种PHP实现网页抓取的程序代码等资源,欢迎您收藏本站,我们将为您提供最新的几种PHP实现网页抓取的程序代码资源
网页抓取就像搜索引擎一个可以去自动抓取其它服务器上的内容了,下面我整理的几个php常用做法,大家一起来看看。
抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐。LZ总结了几种常用的、易于实现的网页抓取方式,如果熟悉jquery选择器,这几种框架会相当简单。
一、Ganon
项目地址: http://code.google.com/p/ganon/
文档: http://code.google.com/p/ganon/w/list
测试:抓取我的网站首页所有class属性值是focus的div元素,并且输出class值
<pre id="codeSnippet"><?php include 'ganon.php'; $html = file_get_dom('http://www.jiaochengji.com/'); foreach($html('div[class="focus"]') as $element) { echo $element->class, "<br>n"; } ?></pre>
 
结果:
ganon
二、phpQuery
项目地址:http://code.google.com/p/phpquery/
文档:https://code.google.com/p/phpquery/wiki/Manual
测试:抓取我网站首页的article标签元素,然后出书其下h2标签的html值
<pre id="codeSnippet"><?php include 'phpQuery/phpQuery.php'; phpQuery::newDocumentFile('http://www.jiaochengji.com/'); $artlist = pq("article"); foreach($artlist as $title){ echo pq($title)->find('h2')->html()."<br/>"; } ?></pre>
 
结果:
pq
  三、Simple-Html-Dom
项目地址: http://simplehtmldom.sourceforge.net/
文档: http://simplehtmldom.sourceforge.net/manual.htm
测试:抓取我网站首页的所有链接
<pre id="codeSnippet"><?php include 'simple_html_dom.php'; //使用url和file都可以创建DOM $html = file_get_html('http://www.jiaochengji.com/'); //找到所有图片 // foreach($html->find('img') as $element) // echo $element->src . '<br>'; //找到所有链接 foreach($html->find('a') as $element) echo $element->href . '<br>'; ?></pre>
 
结果:(截图是一部分)
shd
 
四、Snoopy
项目地址:http://code.google.com/p/phpquery/
文档:http://code.google.com/p/phpquery/wiki/Manual
测试:抓取我的网站首页
<pre id="codeSnippet"><?php include("Snoopy.class.php"); $url = "http://www.jiaochengji.com"; $snoopy = new Snoopy; $snoopy->fetch($url); //获取所有内容 echo $snoopy->results; //显示结果 // echo $snoopy->fetchtext ;//获取文本内容(去掉html代码) // echo $snoopy->fetchlinks($url) ;//获取链接 // $snoopy->fetchform ;//获取表单 ?></pre>
 
结果:
snoopy
 
五、手动编写爬虫

如果编写能力ok,可以手写一个网页爬虫,实现网页抓取。网上有千篇一律的介绍此方法的文章,LZ就不赘述了。有兴趣了解的,可以百度  php 网页抓取。

七、开源爬虫软件汇总

<table border="0" cellspacing="0" cellpadding="0" width="100%"> <tbody> <tr> <td width="11%">

发语言
</td> <td width="14%">
软件名称
</td> <td width="59%">
软件介绍
</td> <td valign="top" width="13%">
许可证
</td> </tr> <tr> <td rowspan="16" width="11%">
Java
</td> <td width="14%">
Arachnid
</td> <td width="59%">
微型爬虫框架,含有一个小型HTML解析器
</td> <td valign="top" width="13%">
GPL
</td> </tr> <tr> <td width="14%">
crawlzilla
</td> <td width="59%">
安装简易,拥有中文分词功能
</td> <td valign="top" width="13%">
Apache2
</td> </tr> <tr> <td width="14%">
Ex-Crawler
</td> <td width="59%">
由守护进程执行,使用数据库存储网页信息
</td> <td valign="top" width="13%">
GPLv3
</td> </tr> <tr> <td width="14%">
Heritrix
</td> <td width="59%">
严格遵照robots文件的排除指示和META robots标签
</td> <td valign="top" width="13%">
LGPL
</td> </tr> <tr> <td width="14%">
heyDr
</td> <td width="59%">
轻量级开源多线程垂直检索爬虫框架
</td> <td valign="top" width="13%">
GPLv3
</td> </tr> <tr> <td width="14%">
ItSucks
</td> <td width="59%">
提供swing GUI操作界面
</td> <td valign="top" width="13%">
不详
</td> </tr> <tr> <td width="14%">
jcrawl
</td> <td width="59%">
轻量、性能优良,可以从网页抓取各种类型的文件
</td> <td valign="top" width="13%">
Apache
</td> </tr> <tr> <td width="14%">
JSpider
</td> <td width="59%">
功能强大,容易扩展
</td> <td valign="top" width="13%">
LGPL
</td> </tr> <tr> <td width="14%">
Leopdo
</td> <td width="59%">
包括全文和分类垂直搜索,以及分词系统
</td> <td valign="top" width="13%">
Apache
</td> </tr> <tr> <td width="14%">
MetaSeeker
</td> <td width="59%">
网页抓取、信息提取、数据抽取工具包,操作简单
</td> <td valign="top" width="13%">
不详
</td> </tr> <tr> <td width="14%">
Playfish
</td> <td width="59%">
通过XML配置文件实现高度可定制性与可扩展性
</td> <td valign="top" width="13%">
MIT
</td> </tr> <tr> <td width="14%">
Spiderman
</td> <td width="59%">
灵活、扩展性强,微内核 插件式架构,通过简单的配置就可以完成数据抓取,无需编写一句代码
</td> <td valign="top" width="13%">
Apache
</td> </tr> <tr> <td width="14%">
webmagic
</td> <td width="59%">
功能覆盖整个爬虫生命周期,使用Xpath和正则表达式进行链接和内容的提取
</td> <td valign="top" width="13%">
Apache
</td> </tr> <tr> <td width="14%">
Web-Harvest
</td> <td width="59%">
运用XSLT、XQuery、正则表达式等技术来实现对Text或XML的操作,具有可视化的界面
</td> <td valign="top" width="13%">
BSD
</td> </tr> <tr> <td width="14%">
WebSPHINX
</td> <td width="59%">
由两部分组成:爬虫工作平台和WebSPHINX类包
</td> <td valign="top" width="13%">
Apache
</td> </tr> <tr> <td width="14%">
YaCy
</td> <td width="59%">
基于P2P的分布式Webseo/seo.html" target="_blank">搜索引擎
</td> <td valign="top" width="13%">
GPL
</td> </tr> <tr> <td rowspan="3" width="11%">
Python
</td> <td width="14%">
QuickRecon
</td> <td width="59%">
具有查找子域名名称、收集电子邮件地址并寻找人际关系等功能
</td> <td valign="top" width="13%">
GPLv3
</td> </tr> <tr> <td width="14%">
PyRailgun
</td> <td width="59%">
简洁、轻量、高效的网页抓取框架
</td> <td valign="top" width="13%">
MIT
</td> </tr> <tr> <td width="14%">
Scrapy
</td> <td width="59%">
基于Twisted的异步处理框架,文档齐全
</td> <td valign="top" width="13%">
<span>BSD</span>
</td> </tr> <tr> <td rowspan="4" width="11%">
C
</td> <td width="14%">
hispider
</td> <td width="59%">
支持多机分布式下载, 支持网站定向下载
</td> <td valign="top" width="13%">
BSD
</td> </tr> <tr> <td width="14%">
larbin
</td> <td width="59%">
高性能的爬虫软件,只负责抓取不负责解析
</td> <td valign="top" width="13%">
GPL
</td> </tr> <tr> <td width="14%">
Methabot
</td> <td width="59%">
经过速度优化、可抓取WEB、FTP及本地文件系统
</td> <td valign="top" width="13%">
不详
</td> </tr> <tr> <td width="14%">
Methanol
</td> <td width="59%">
模块化、可定制的网页爬虫,速度快
</td> <td valign="top" width="13%">
不详
</td> </tr> <tr> <td rowspan="5" width="11%">
C#
</td> <td width="14%">
NWebCrawler
</td> <td width="59%">
统计信息、执行过程可视化
</td> <td valign="top" width="13%">
GPLv2
</td> </tr> <tr> <td width="14%">
Sinawler
</td> <td width="59%">
国内第一个针对微博数据的爬虫程序,功能强大
</td> <td valign="top" width="13%">
GPLv3
</td> </tr> <tr> <td width="14%">
spidernet
</td> <td width="59%">
以递归树为模型的多线程web爬虫程序,支持以GBK (gb2312)和utf8编码的资源,使用sqlite存储数据
</td> <td valign="top" width="13%">
MIT
</td> </tr> <tr> <td width="14%">
Web Crawler
</td> <td width="59%">
多线程,支持抓取PDF/DOC/EXCEL等文档来源
</td> <td valign="top" width="13%">
LGPL
</td> </tr> <tr> <td width="14%">
网络矿工
</td> <td width="59%">
功能丰富,毫不逊色于商业软件
</td> <td valign="top" width="13%">
BSD
</td> </tr> <tr> <td rowspan="5" width="11%">
PHP
</td> <td width="14%">
OpenWebSpider
</td> <td width="59%">
开源多线程网络爬虫,有许多有趣的功能
</td> <td valign="top" width="13%">
不详
</td> </tr> <tr> <td width="14%">
PhpDig
</td> <td width="59%">
适用于专业化强、层次更深的个性化搜索引擎
</td> <td valign="top" width="13%">
GPL
</td> </tr> <tr> <td width="14%">
Snoopy
</td> <td width="59%">
具有采集网页内容、提交表单功能
</td> <td valign="top" width="13%">
GPL
</td> </tr> <tr> <td width="14%">
ThinkUp
</td> <td width="59%">
采集推特、脸谱等社交网络数据的社会媒体视角引擎,可进行交互分析并将结果以可视化形式展现
</td> <td valign="top" width="13%">
GPL
</td> </tr> <tr> <td width="14%">
微购
</td> <td width="59%">
可采集淘宝、京东、当当等300多家电子商务数据
</td> <td valign="top" width="13%">
GPL
</td> </tr> <tr> <td width="11%">
ErLang
</td> <td width="14%">
Ebot
</td> <td width="59%">
可伸缩的分布式网页爬虫
</td> <td valign="top" width="13%">
GPLv3
</td> </tr> <tr> <td width="11%">
Ruby
</td> <td width="14%">
Spidr
</td> <td width="59%">
可将一个或多个网站、某个链接完全抓取到本地
</td> <td valign="top" width="13%">
MIT
</td> </tr> </tbody> </table>

 

您可能感兴趣的文章:
php 多线程抓取网页的代码分享
PHP 抓取内容中图片并下载保存的代码
python的爬虫是什么意思
php file_get_contents函数抓取页面信息的代码
Python3爬虫入门:pyspider 框架介绍
Google排名不稳定问题
爬虫python什么意思
php动态网页是什么意思?
php file_get_contents抓取页面信息的代码
php读取远程文件的三种方法分享

[关闭]
~ ~