`
天梯梦
  • 浏览: 13766833 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

PHPCrawl webcrawler 爬虫

 
阅读更多

 

1. PHPCrawl

PHPCrawl is a framework for crawling/spidering websites written in the programming language PHP, so just call it a webcrawler-library or crawler-engine for PHP

PHPCrawl "spiders" websites and passes information about all found documents (pages, links, files ans so on) for futher processing to users of the library.

It provides several options to specify the behaviour of the crawler like URL- and Content-Type-filters, cookie-handling, robots.txt-handling, limiting options, multiprocessing and much more.

PHPCrawl is completly free opensource software and is licensed under the GNU GENERAL PUBLIC LICENSE v2.

To get a first impression on how to use the crawler you may want to take a look at the quickstart guide or an example inside the manual section.
A complete reference and documentation of all available options and methods of the framework can be found in the classreferences-section

The current version of the phpcrawl-package and older releases can be downloaded from a sourceforge-mirror.

Note to users of phpcrawl version 0.7x or before: Although in version 0.8 some method-names and parameters have changed, it should be fully compatible to older versions of phpcrawl.

 

Installation & Quickstart

The following steps show how to use phpcrawl:
  1. Unpack the phpcrawl-package somewhere. That's all you have to do for installation.
  2. Include the phpcrawl-mainclass to your script or project. Its located in the "libs"-path of the package.

     

    include("libs/PHPCrawler.class.php"); 

     

    There are no other includes needed.
  3. Extend the phpcrawler-class and override the handleDocumentInfo-method with your own code to process the information of every document the crawler finds on its way.

    class MyCrawler extends PHPCrawler
    {
      function handleDocumentInfo(PHPCrawlerDocumentInfo $PageInfo)
      {
        // Your code comes here!
        // Do something with the $PageInfo-object that
        // contains all information about the currently 
        // received document.
    
        // As example we just print out the URL of the document
        echo $PageInfo->url."\n";
      }
    } 

     

    For a list of all available information about a page or file within the handleDocumentInfo-method see the PHPCrawlerDocumentInfo-reference.

    Note to users of phpcrawl 0.7x or before: The old, overridable method "handlePageData()", that receives the document-information as an array, still is present and gets called. PHPcrawl 0.8 is fully compatible with scripts written for earlier versions.
  4. Create an instance of that class in your script or project, define the behaviour of the crawler and start the crawling-process.

    $crawler = new MyCrawler();
    $crawler->setURL("www.foo.com");
    $crawler->addContentTypeReceiveRule("#text/html#");
    // ...
    
    $crawler->go();  

     

    For a list of all available setup-options/methods of the crawler take a look at the PHPCrawler-classreference.

Tutorial: Example Script

The following code is a simple example of using phpcrawl.

The listed script just "spiders" some pages of www.php.net until a traffic-limit of 1 mb is reached and prints out some information about all found documents.

Please note that this example-script (and others) also comes in a file called "example.php" with the phpcrawl-package. It's recommended to run it from the commandline (php CLI).

 <?php

// It may take a whils to crawl a site ...
set_time_limit(10000);

// Inculde the phpcrawl-mainclass
include("libs/PHPCrawler.class.php");

// Extend the class and override the handleDocumentInfo()-method 
class MyCrawler extends PHPCrawler 
{
  function handleDocumentInfo($DocInfo) 
  {
    // Just detect linebreak for output ("\n" in CLI-mode, otherwise "<br>").
    if (PHP_SAPI == "cli") $lb = "\n";
    else $lb = "<br />";

    // Print the URL and the HTTP-status-Code
    echo "Page requested: ".$DocInfo->url." (".$DocInfo->http_status_code.")".$lb;
    
    // Print the refering URL
    echo "Referer-page: ".$DocInfo->referer_url.$lb;
    
    // Print if the content of the document was be recieved or not
    if ($DocInfo->received == true)
      echo "Content received: ".$DocInfo->bytes_received." bytes".$lb;
    else
      echo "Content not received".$lb; 
    
    // Now you should do something with the content of the actual
    // received page or file ($DocInfo->source), we skip it in this example 
    
    echo $lb;
    
    flush();
  } 
}

// Now, create a instance of your class, define the behaviour
// of the crawler (see class-reference for more options and details)
// and start the crawling-process. 

$crawler = new MyCrawler();

// URL to crawl
$crawler->setURL("www.php.net");

// Only receive content of files with content-type "text/html"
$crawler->addContentTypeReceiveRule("#text/html#");

// Ignore links to pictures, dont even request pictures
$crawler->addURLFilterRule("#\.(jpg|jpeg|gif|png)$# i");

// Store and send cookie-data like a browser does
$crawler->enableCookieHandling(true);

// Set the traffic-limit to 1 MB (in bytes,
// for testing we dont want to "suck" the whole site)
$crawler->setTrafficLimit(1000 * 1024);

// Thats enough, now here we go
$crawler->go();

// At the end, after the process is finished, we print a short
// report (see method getProcessReport() for more information)
$report = $crawler->getProcessReport();

if (PHP_SAPI == "cli") $lb = "\n";
else $lb = "<br />";
    
echo "Summary:".$lb;
echo "Links followed: ".$report->links_followed.$lb;
echo "Documents received: ".$report->files_received.$lb;
echo "Bytes received: ".$report->bytes_received." bytes".$lb;
echo "Process runtime: ".$report->process_runtime." sec".$lb; 
?> 

 

 

来源:http://cuab.de/

下载:http://sourceforge.net/projects/phpcrawl/files/PHPCrawl/

 

2. PHP Crawler

PHP Crawler is a simple website search script for small-to-medium websites. The only requrements are PHP and MySQL, no shell access required.

 

来源/下载:http://sourceforge.net/projects/php-crawler/

 

3. Crawl Web Pages In PHP And Jquery

You All know Google used to crawl web pages and index them into there database of millions and trillions of pages they use a great software called spider to perform this Process   this spider will index all the web pages in the internet with great speed like the same way i coded out a simple mini web crawler crawls  the specific webpages and get out there links and displays it, i used PHP and Jquery to perform this actions when a people types the url and clicks crawl the software  crawls the whole web page and displays the link present in it  and you can see the demo here and download the script for free

 

Demo 

 

来源:http://www.spixup.org/2013/04/crawl-web-pages-in-php-and-jquery.html

 

 

 

分享到:
评论

相关推荐

    PHPCrawl.rar_PHP CRAWLER_PHPCrawl_crawler_web crawler in PHP_爬虫

    PHP Crawler是一款用PHP语言编写的网页爬虫框架,它使得开发者能够轻松地构建自己的网络爬虫程序,用于抓取互联网上的数据。PHP Crawler的核心功能是遍历网页链接,提取页面内容,以及按照预定义的规则进行数据筛选...

    php 向访客和爬虫显示不同的内容

    最后,我们提到了一些PHP爬虫实现的示例,如PHPCrawl库,以及使用Python实现的线程池多线程爬虫。了解如何编写爬虫对于理解搜索引擎如何工作和如何优化你的网站是很有帮助的,但请确保你的爬虫行为符合网站的robots....

    基于局部优化的电动汽车充放电策略优化:MATLAB+CVX平台下的调度模型与效果分析,基于局部优化的电动汽车大规模随机充放电策略优化方案-对比均衡负载与全局优化法,实现运行成本最小化与高效出图效果

    基于局部优化的电动汽车充放电策略优化:MATLAB+CVX平台下的调度模型与效果分析,基于局部优化的电动汽车大规模随机充放电策略优化方案——对比均衡负载与全局优化法,实现运行成本最小化与高效出图效果。,MATLAB代码:基于局部优化的大规模电动汽车随机充放电策略优化 关键词:电动汽车充放电优化 电动汽车 局部优化 充放电策略 参考文档:《Optimal Scheduling for Charging and Discharging of Electric Vehicles》完全复现 仿真平台:MATLAB+CVX平台 主要内容:代码主要做的是电动汽车充放电优化策略管理,为解决大规模电动汽车调度问题带来的复杂求解难度,提出了一种基于局部优化的快速优化方法,并横向对比了三种方法,即均衡负载法、局部优化法以及全局优化法,电动汽车的调度模型考虑了大量人口以及电动汽车的随机达到分布式调度模型,调度的目标函数为电动汽车充放电管理的运行成本最小化,更加创新,而且求解的效果更好,出图效果十分完美 可以直接拿过去用 ,电动汽车; 局部优化; 充放电策略优化; 随机充放电; 分布式调度模型; 运行成本

    基于PLC控制的加工站与包装站间传送系统电气控制设计研究,PLC在加工传送包装站中的电气控制系统设计与应用,基于plc加工站传送包装站控制系统设计加工传送包装站电气控制 ,核心关键词:PLC加工站

    基于PLC控制的加工站与包装站间传送系统电气控制设计研究,PLC在加工传送包装站中的电气控制系统设计与应用,基于plc加工站传送包装站控制系统设计加工传送包装站电气控制 ,核心关键词:PLC加工站; 传送; 包装站; 控制系统设计; 电气控制。,基于PLC的加工站与包装站控制系统设计与电气控制

    2012年必应壁纸.rar

    2012年必应壁纸

    Zotero 重复合并 v1.1.5

    来自GITHUB作者frangoud的文档合并删除插件,适用于Zotero。原下载网站网速较慢,提供一个下载链接 使用方法: 1.下载zotero 重复条目合并文件。 2.在Zotero中点击工具-附加组件,齿轮处选择 install Add-on from file...。 3.找到下载文件中的ZoteroDuplicatesMerger-v1.1.5.xpi并双击。 4.双击install now。 5.重启以确认安装。 插件原下载位置:https://github.com/frangoud/ZoteroDuplicatesMerger

    基于DDS技术的FPGA信号发生器波形仿真:用Verilog语言实现正弦波、方波、锯齿波及三角波的组合生成,基于DDS技术的FPGA信号发生器波形仿真:Verilog语言实现正弦波、方波等四种波形及其

    基于DDS技术的FPGA信号发生器波形仿真:用Verilog语言实现正弦波、方波、锯齿波及三角波的组合生成,基于DDS技术的FPGA信号发生器波形仿真:Verilog语言实现正弦波、方波等四种波形及其线性组合生成,FPGA仿真,Verilog语言。 基于DDS技术的信号发生器波形仿真,能产生正弦波方波锯齿波三角波以及四种波形的线性组合。 ,FPGA仿真; Verilog语言; DDS技术; 信号发生器; 正弦波; 方波; 锯齿波; 三角波; 波形组合。,FPGA实现DDS技术:Verilog编程的信号发生器波形仿真

    BIC调控超表面手性光响应:偏振转换、能带结构与复杂结构建模研究,基于BIC的超表面手性光响应:探索偏振转换与圆二色性CD谱特性,复杂结构建模及仿真研究,COMSOL与MATLAB联合应用,BIC支持

    BIC调控超表面手性光响应:偏振转换、能带结构与复杂结构建模研究,基于BIC的超表面手性光响应:探索偏振转换与圆二色性CD谱特性,复杂结构建模及仿真研究,COMSOL与MATLAB联合应用,BIC支持的超表面最大可调手性光响应; - 复现:2022子刊NC; - 结果关键词:超表面,BIC,偏振转、能带、偏振场分布、Q因子、圆二色性CD谱,光场模式、斜入射、复杂结构建模 - 软件:comsol,matlab - 备注:所展示结构即可以实现文章所有结果,其后续图均为修改参数即可得到 ,BIC; 超表面; 最大可调手性光响应; 复现2022子刊NC; 偏振转换; 能带; 偏振场分布; Q因子; 圆二色性CD谱; 光场模式; 斜入射; 复杂结构建模; comsol; matlab。,BIC超表面优化光响应研究:偏振转换与能带调控

    南充经济开发区(南充化工园区)智慧园区解决方案PPT(65页).pptx

    在当今化工行业转型升级的大潮中,智慧化工园区作为推动绿色、创新、高质量发展的关键力量,正逐步成为行业发展的新趋势。随着国家政策的不断引导和推动,智慧化工园区的建设已不仅仅是提升管理服务水平的手段,更是实现安全生产、环境保护和应急响应能力全面提升的重要途径。从提升重大危险源监测、隐患排查到完善风险分级管控机制,智慧化工园区利用信息化、智能化技术,构建了一个全方位、多层次的安全、环保、应急救援一体化管理平台。 智慧化工园区以安全、便捷、高效、节能、物联为核心理念,通过深度融合云计算、物联网、人脸识别、大数据分析、人工智能等先进技术,实现了园区生产、车辆、人员、环境、能源等关键环节的智能化管理。在基础网络方面,园区不仅实现了全千兆光纤接入,还覆盖了5G信号、NB-IoT信号和WiFi网络,为万物互联提供了坚实的基础。智慧安监作为园区的核心板块,通过企业安全云服务、安全文化宣传教育、舆情信息监管、风险分级管控、隐患排查治理以及重大危险源管理等功能,构建了从源头到末端的全过程安全监管体系。特别是企业一张表功能,实现了企业档案的数字化管理,为精准施策提供了有力支持。此外,智慧园区还通过物联网监测预警系统,利用智能终端设备对园区内的各类风险进行实时监测和预警,确保园区安全无虞。 在智慧节能与环保方面,园区通过智能仪表监测电、水、冷、气等能耗数据,实现能源管理的精细化和节能减排。智慧应急系统则融合了指挥调度、辅助决策等功能,能够在突发情况下迅速响应,有效处置。智慧环保系统则利用物联网技术和大数据分析,实现了环境质量的自动监测和预警,为环保部门提供了精准的执法依据。同时,智慧物流、智慧安防、智慧楼宇等系统的引入,进一步提升了园区的智能化水平和运行效率。这些系统的集成应用,不仅让园区的管理更加便捷高效,还极大地提升了园区的整体竞争力和可持续发展能力。对于正在筹备或优化智慧化工园区建设方案的读者来说,这份解决方案无疑提供了宝贵的参考和灵感,让智慧化工园区的建设之路变得更加清晰和有趣。

    基于SMO滑模观测器的异步电机无传感器矢量控制:Matlab仿真模型研究,基于SMO滑模观测器的异步电机无传感器矢量控制研究:Matlab仿真模型分析,基于SMO滑模观测器的异步电机无传感器矢量控制

    基于SMO滑模观测器的异步电机无传感器矢量控制:Matlab仿真模型研究,基于SMO滑模观测器的异步电机无传感器矢量控制研究:Matlab仿真模型分析,基于SMO滑模观测器的异步电机无传感器矢量控制,matlab,仿真模型。 ,基于SMO滑模观测器; 异步电机无传感器矢量控制; MATLAB; 仿真模型;,基于SMO的异步电机无传感器矢量控制仿真模型:MATLAB中的滑模观测器应用

    使用ssh框架的文档管理系统.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途,网络商品/电子资源资料具可复制性不支持退款。质量优质,放心下载使用。

    在 Python 中使用 TensorFlow 进行面罩检测

    tensorflow 在 Python 中使用 TensorFlow 进行面罩检测 在本文中,我们将讨论我们的两阶段 COVID-19 口罩检测器,详细介绍我们将如何实施我们的计算机视觉/深度学习管道。 我们将使用此 Python 脚本来训练口罩检测器并查看结果。鉴于经过训练的 COVID-19 口罩检测器,我们将继续实施另外两个额外的 Python 脚本,用于: 检测图像中的 COVID-19 口罩 检测实时视频流中的面罩

    北京大学-DeepSeek系列-提示词工程和落地场景

    北京大学-DeepSeek系列-提示词工程和落地场景

    控制台下的超级玛丽,自己做的“黑框框程序创意设计大赛”作品。。。一般般,可是符合现阶段我的水准,加油.zip

    大创项目代码

    一站式图片处理神器,轻松搞定截图与编辑

    打工人们你们好!这里是摸鱼 特供版~ 嘿,朋友们!在日常工作中,无论是设计、文档整理,还是简单的图片编辑,我们总离不开各种图片处理工具。但你是否还在为频繁切换软件而烦恼?今天,我要给大家介绍一款超实用的综合性图片处理工具——PicPick!它不仅能轻松完成各种截图任务,还能对图片进行高效编辑,甚至还有许多隐藏的“黑科技”功能,绝对能让你爱不释手! 推荐指数:★★★★★ 一、功能介绍 1. 屏幕截图:五种模式,满足你的所有需求 PicPick的截图功能堪称“全能”,提供了五种不同的截图模式,无论是全屏截图、活动窗口截图,还是自由选取截图、固定区域截图,甚至是滚动截屏,都能轻松搞定。再也不用担心错过屏幕上的任何精彩瞬间! 全屏截图:一键捕捉整个屏幕,适合快速获取完整画面。 活动窗口截图:精准捕捉当前活动窗口,方便提取特定应用的内容。 自由选取截图:自由框选任意区域,灵活应对复杂场景。 固定区域截图:设置固定区域,重复截图时更加高效。 滚动截屏:完美解决长网页、长文档的截图难题,一键生成完整长图。 2. 屏幕截图图像编辑:功能强大,操作简单 截图完成后,PicPick还能对图片进行快速

    S7-1200 PLC在MCGS M7120型平面磨床电气控制系统中的改造实践,S7-1200 PLC与MCGS系统改造M7120平面磨床电气控制系统升级方案,S7-1200 MCGS M7120型平

    S7-1200 PLC在MCGS M7120型平面磨床电气控制系统中的改造实践,S7-1200 PLC与MCGS系统改造M7120平面磨床电气控制系统升级方案,S7-1200 MCGS M7120型平面磨床电气控制系统的PLC改造 ,S7-1200 PLC; MCGS 监控系统; M7120平面磨床; 电气控制系统改造; 自动化升级,S7-1200 PLC在M7120型平面磨床电气系统中的升级改造

    智慧化工园区解决方案-6PPT(50页).pptx

    在当今化工行业转型升级的大潮中,智慧化工园区作为推动绿色、创新、高质量发展的关键力量,正逐步成为行业发展的新趋势。随着国家政策的不断引导和推动,智慧化工园区的建设已不仅仅是提升管理服务水平的手段,更是实现安全生产、环境保护和应急响应能力全面提升的重要途径。从提升重大危险源监测、隐患排查到完善风险分级管控机制,智慧化工园区利用信息化、智能化技术,构建了一个全方位、多层次的安全、环保、应急救援一体化管理平台。 智慧化工园区以安全、便捷、高效、节能、物联为核心理念,通过深度融合云计算、物联网、人脸识别、大数据分析、人工智能等先进技术,实现了园区生产、车辆、人员、环境、能源等关键环节的智能化管理。在基础网络方面,园区不仅实现了全千兆光纤接入,还覆盖了5G信号、NB-IoT信号和WiFi网络,为万物互联提供了坚实的基础。智慧安监作为园区的核心板块,通过企业安全云服务、安全文化宣传教育、舆情信息监管、风险分级管控、隐患排查治理以及重大危险源管理等功能,构建了从源头到末端的全过程安全监管体系。特别是企业一张表功能,实现了企业档案的数字化管理,为精准施策提供了有力支持。此外,智慧园区还通过物联网监测预警系统,利用智能终端设备对园区内的各类风险进行实时监测和预警,确保园区安全无虞。 在智慧节能与环保方面,园区通过智能仪表监测电、水、冷、气等能耗数据,实现能源管理的精细化和节能减排。智慧应急系统则融合了指挥调度、辅助决策等功能,能够在突发情况下迅速响应,有效处置。智慧环保系统则利用物联网技术和大数据分析,实现了环境质量的自动监测和预警,为环保部门提供了精准的执法依据。同时,智慧物流、智慧安防、智慧楼宇等系统的引入,进一步提升了园区的智能化水平和运行效率。这些系统的集成应用,不仅让园区的管理更加便捷高效,还极大地提升了园区的整体竞争力和可持续发展能力。对于正在筹备或优化智慧化工园区建设方案的读者来说,这份解决方案无疑提供了宝贵的参考和灵感,让智慧化工园区的建设之路变得更加清晰和有趣。

    基于集成学习Bagging算法的Matlab数据回归预测代码实现,基于集成学习Bagging算法的集成模型数据回归预测:高效MATLAB代码实践,基于集成模型的Bagging的数据回归预测 matla

    基于集成学习Bagging算法的Matlab数据回归预测代码实现,基于集成学习Bagging算法的集成模型数据回归预测:高效MATLAB代码实践,基于集成模型的Bagging的数据回归预测 matlab代码 ,基于Bagging的集成模型; 数据回归预测; Matlab代码,基于集成模型Bagging的Matlab数据回归预测实现

    数据库实现电话簿和记事本.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途,网络商品/电子资源资料具可复制性不支持退款。质量优质,放心下载使用。

Global site tag (gtag.js) - Google Analytics