网页抓取就像搜索引擎一个可以去自动抓取其它服务器上的内容了,下面我整理的几个php常用做法,大家一起来看看。
抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐。LZ总结了几种常用的、易于实现的网页抓取方式,如果熟悉JQuery选择器,这几种框架会相当简单。
一、Ganon
项目地址: http://code.google.com/p/ganon/
文档: http://code.google.com/p/ganon/w/list
测试:抓取我的网站首页所有class属性值是focus的div元素,并且输出class值
<?php  'ganon.php'; $html = file_get_dom('http://www.111cn.net/'); ($html('div[class="focus"]') as $element) {   echo $element->class, "<br>n";  }?>
结果:
二、phpQuery
项目地址:http://code.google.com/p/phpquery/
文档:htt://code.google.com/p/phpquery/wiki/Manual
测试:抓取我网站首页的article标签元素,然后出书其下h2标签的html值
<?phpinclude 'phpQuery/phpQuery.php'; phpQuery::newDocumentFile('http://www.111cn.net/'); $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.111cn.net/');//找到所有图片// 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.111cn.net";$snoopy = new Snoopy;$snoopy->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的分布式Web/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

几种PHP实现网页抓取的程序代码相关推荐

  1. php网页抓取代码,几种PHP实现网页抓取的程序代码

    网页抓取就像搜索引擎一个可以去自动抓取其它服务器上的内容了,下面我整理的几个php常用做法,大家一起来看看. 抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程 ...

  2. php 实现信息采集(网页内容抓取)程序代码

    php 实现信息采集(网页内容抓取)程序代码 <? //采集首页地址 $url="http://www.xz-src.com/"; //获取页面代码 $rs=file_get ...

  3. 代理服务器ip地址如何获得_详细教程:如何使用代理服务器进行网页抓取?

    全文共2136字,预计学习时长7分钟 图源:Unsplash 万维网是数据的宝库.大数据的易得性.数据分析软件的迅猛发展以及日益廉价的计算能力进一步提高了数据驱动战略对竞争差异化的重要性. 据Forr ...

  4. ​详细教程:如何使用代理服务器进行网页抓取?

    全文共2136字,预计学习时长7分钟 图源:Unsplash 万维网是数据的宝库.大数据的易得性.数据分析软件的迅猛发展以及日益廉价的计算能力进一步提高了数据驱动战略对竞争差异化的重要性. 据Forr ...

  5. 网络爬虫系列之网页抓取

    ​ (你的世界是个什么样的世界?你说,我们倾听!) ----------------- 网页抓取 我们在抓取网页时需要安装requests包,具体安装过程如下: pip install request ...

  6. python 抓取网页 库_5种流行的Web抓取Python库,你用过哪种?

    "我们有足够的数据"这句话,在数据科学领域并不存在. 我很少会听到有人拒绝为他们的机器学习或深度学习项目收集更多的数据,往往都是永远觉得自己拥有的数据不够多. 为了缓解这种&quo ...

  7. 用Python构建网页抓取器

    借助使用Python构建的尖端网页抓取技术,启动您的大数据项目 Scrape the Planet! Building Web Scrapers with Python 你会学到什么 如何理论化和开发 ...

  8. python爬虫怎么爬同一个网站的多页数据-如何用Python爬数据?(一)网页抓取

    如何用Python爬数据?(一)网页抓取 你期待已久的Python网络数据爬虫教程来了.本文为你演示如何从网页里找到感兴趣的链接和说明文字,抓取并存储到Excel. 需求 我在公众号后台,经常可以收到 ...

  9. 5种流行的Web抓取Python库,你用过哪种?

    "我们有足够的数据"这句话,在数据科学领域并不存在. 我很少会听到有人拒绝为他们的机器学习或深度学习项目收集更多的数据,往往都是永远觉得自己拥有的数据不够多. 为了缓解这种&quo ...

最新文章

  1. python实现Anderson-Darling正态分布检验
  2. UITextField总结--博主总结的真好
  3. 《构建之法》8.9.10
  4. HDU 4023 (博弈 贪心 模拟) Game
  5. sublime c 语言 编译环境搭建,详解sublime搭建C/C++编译环境
  6. android studio替换jdk,Mac Android Studio JDK7 替换
  7. 街头人手一件加拿大鹅?店员道出真相:90%都是假货
  8. 事务的四个属性ACID
  9. python必备入门代码-小白入门Python开发,必备技能有哪些?
  10. 熊猫眼啦!头晕得写不鸟程序啦!来谈谈我已经过大半的大学生活吧
  11. fpga开发教程 labview_NILabVIEW高性能FPGA开发者指南.pdf
  12. android网页生成pdf,Android生成pdf
  13. 搭建ASP环境-win7安装IIS并运行ASP程序
  14. 应变计测轴扭矩 计算
  15. 服务器是否支持虚拟化,如何检查服务器CPU是否支持虚拟化技术(VT)
  16. 系统间接口调用/接口对接 Java
  17. Kermit使用(提权限)
  18. Android开发必须会的技能!写给安卓软件工程师的3条建议,Android岗
  19. 【C语言】解决 “error: function definition is not allowed here”
  20. 联想拯救者2021款R系列声音卡顿、间断呲呲问题修复指南

热门文章

  1. 旋转目标检测复现-yolov5-obb
  2. Python — “输入直角边求斜边”
  3. Matlab学习——曲柄滑块的运动仿真
  4. PHP根据字符串拼音首字母进行排序/PHP通讯录按字母A-Z排序
  5. 小白算法练习 lanqiao SPFA+vector 模板
  6. 在IOS设备上调试(真机调试)
  7. 如何将训练好的Glove转换成word2vec
  8. 动手学深度学习(三十九)——门控循环单元GRU
  9. 单片机遥控开关系统设计(结构原理、电路、程序)
  10. 【报错】zipimport.ZipImportError: can‘t decompress data; zlib not available