最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
几种PHP实现网页抓取的程序代码
时间:2022-06-24 17:14:40 编辑:袖梨 来源:一聚教程网
抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐。LZ总结了几种常用的、易于实现的网页抓取方式,如果熟悉JQuery选择器,这几种框架会相当简单。
一、Ganon
项目地址: http://code.google.com/p/ganon/
文档: http://code.google.com/p/ganon/w/list
测试:抓取我的网站首页所有class属性值是focus的div元素,并且输出class值
include 'ganon.php'; $html = file_get_dom('http://www.111com.net/'); foreach($html('div[class="focus"]') as $element) { echo $element->class, "
n"; } ?>
结果:
二、phpQuery
项目地址:http://code.google.com/p/phpquery/
文档:https://code.google.com/p/phpquery/wiki/Manual
测试:抓取我网站首页的article标签元素,然后出书其下h2标签的html值
find('h2')->html()."
"; } ?>
结果:
三、Simple-Html-Dom
项目地址: http://simplehtmldom.sourceforge.net/
文档: http://simplehtmldom.sourceforge.net/manual.htm
文档: http://simplehtmldom.sourceforge.net/manual.htm
测试:抓取我网站首页的所有链接
find('img') as $element) // echo $element->src . '
'; //找到所有链接 foreach($html->find('a') as $element) echo $element->href . '
'; ?>
结果:(截图是一部分)
四、Snoopy
项目地址:http://code.google.com/p/phpquery/
文档:http://code.google.com/p/phpquery/wiki/Manual
测试:抓取我的网站首页
fetch($url); //获取所有内容 echo $snoopy->results; //显示结果 // echo $snoopy->fetchtext ;//获取文本内容(去掉html代码) // echo $snoopy->fetchlinks($url) ;//获取链接 // $snoopy->fetchform ;//获取表单 ?>
结果:
五、手动编写爬虫
如果编写能力ok,可以手写一个网页爬虫,实现网页抓取。网上有千篇一律的介绍此方法的文章,LZ就不赘述了。有兴趣了解的,可以百度 php 网页抓取。
七、开源爬虫软件汇总
发语言
|
软件名称
|
软件介绍
|
许可证
|
Java
|
Arachnid
|
微型爬虫框架,含有一个小型HTML解析器
|
GPL
|
crawlzilla
|
安装简易,拥有中文分词功能
|
Apache2
|
|
Ex-Crawler
|
由守护进程执行,使用数据库存储网页信息
|
GPLv3
|
|
Heritrix
|
严格遵照robots文件的排除指示和META robots标签
|
LGPL
|
|
heyDr
|
轻量级开源多线程垂直检索爬虫框架
|
GPLv3
|
|
ItSucks
|
提供swing GUI操作界面
|
不详
|
|
jcrawl
|
轻量、性能优良,可以从网页抓取各种类型的文件
|
Apache
|
|
JSpider
|
功能强大,容易扩展
|
LGPL
|
|
Leopdo
|
包括全文和分类垂直搜索,以及分词系统
|
Apache
|
|
MetaSeeker
|
网页抓取、信息提取、数据抽取工具包,操作简单
|
不详
|
|
Playfish
|
通过XML配置文件实现高度可定制性与可扩展性
|
MIT
|
|
Spiderman
|
灵活、扩展性强,微内核+插件式架构,通过简单的配置就可以完成数据抓取,无需编写一句代码
|
Apache
|
|
webmagic
|
功能覆盖整个爬虫生命周期,使用Xpath和正则表达式进行链接和内容的提取
|
Apache
|
|
Web-Harvest
|
运用XSLT、XQuery、正则表达式等技术来实现对Text或XML的操作,具有可视化的界面
|
BSD
|
|
WebSPHINX
|
由两部分组成:爬虫工作平台和WebSPHINX类包
|
Apache
|
|
YaCy
|
基于P2P的分布式Webseo/seo.html" target="_blank">搜索引擎
|
GPL
|
|
Python
|
QuickRecon
|
具有查找子域名名称、收集电子邮件地址并寻找人际关系等功能
|
GPLv3
|
PyRailgun
|
简洁、轻量、高效的网页抓取框架
|
MIT
|
|
Scrapy
|
基于Twisted的异步处理框架,文档齐全
|
BSD
|
|
C++
|
hispider
|
支持多机分布式下载, 支持网站定向下载
|
BSD
|
larbin
|
高性能的爬虫软件,只负责抓取不负责解析
|
GPL
|
|
Methabot
|
经过速度优化、可抓取WEB、FTP及本地文件系统
|
不详
|
|
Methanol
|
模块化、可定制的网页爬虫,速度快
|
不详
|
|
NWebCrawler
|
统计信息、执行过程可视化
|
GPLv2
|
|
Sinawler
|
国内第一个针对微博数据的爬虫程序,功能强大
|
GPLv3
|
|
spidernet
|
以递归树为模型的多线程web爬虫程序,支持以GBK (gb2312)和utf8编码的资源,使用sqlite存储数据
|
MIT
|
|
Web Crawler
|
多线程,支持抓取PDF/DOC/EXCEL等文档来源
|
LGPL
|
|
网络矿工
|
功能丰富,毫不逊色于商业软件
|
BSD
|
|
PHP
|
OpenWebSpider
|
开源多线程网络爬虫,有许多有趣的功能
|
不详
|
PhpDig
|
适用于专业化强、层次更深的个性化搜索引擎
|
GPL
|
|
Snoopy
|
具有采集网页内容、提交表单功能
|
GPL
|
|
ThinkUp
|
采集推特、脸谱等社交网络数据的社会媒体视角引擎,可进行交互分析并将结果以可视化形式展现
|
GPL
|
|
微购
|
可采集淘宝、京东、当当等300多家电子商务数据
|
GPL
|
|
ErLang
|
Ebot
|
可伸缩的分布式网页爬虫
|
GPLv3
|
Ruby
|
Spidr
|
可将一个或多个网站、某个链接完全抓取到本地
|
MIT
|
相关文章
- 人们熟悉的寄居蟹属于以下哪种分类 神奇海洋11月21日答案 11-21
- 第五人格11.22共研服有什么更新 11月22日共研服更新内容介绍 11-21
- 原神恰斯卡怎么培养 11-21
- 无期迷途四星装束是谁 11-21
- 王者荣耀帝丹高中校服怎么获得 11-21
- 光遇姆明季后续版本怎么玩 11-21