php 解析html的工具 嵌入式

简介:

PHP Simple HTML Dom Parser使用php5+编写,支持以一种超级简单的方式操纵HTML。 
    * 需要php5以上版本 
    * 支持html标签纠错 
    * 支持jQuery风格选择器 
    * 非常简洁的从HTML中抽取内容 加载整个页面,然后按HTML标记拆成树,然后再通过查找节点,最后读取需要节点的内容文本即可

index.php iframe包含采集页防止采集页js,css等与本站冲突

Java代码   收藏代码
  1. <div class="maincon">   
  2. <iframe id="mainiframe" frameborder=0 width="100%" height="960"  
  3. marginheight=0 marginwidth=0 scrolling=no src="http://localhost/appreciate/mobile/recharge"></iframe>   
  4. </div>  

iframe中修改采集页的form提交action,提交到本站进行处理,将提交的数据在模拟采集页提交。(一个表单做2次提交

http://hudeyong926.iteye.com/blog/903490

Java代码   收藏代码
  1. public function rechargeAction()  
  2. {  
  3.     include_once('lib/simple_html_dom.php');  
  4.     $html = file_get_html(self::RECHARGE_URL);  
  5.     $post_url = $html->find('form'0)->action; //form action  
  6.     $html->getElementById('mobileNo')->outertext = $html->find('input[id=mobileNo]'0)->outertext . "<input type='hidden' name='post_url' value='$post_url'>"//form中传递采集post_url  
  7.     //$html->find('div.more-com',0)->outertext = '';  
  8.     $html->find('form'0)->setAttribute('action''http://localhost/appreciate/mobile/rechargePost'); //修改form action  
  9.     $html->find('td a'1)->setAttribute('href''http://localhost/appreciate/mobile/history'); //修改 订单查询链接  
  10.     $ereg_rule_src_script = '/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/bank\/ddl\/js\/utility\/utility.index.js?/i';  
  11.     foreach ($html->find('script') as $script) {  //正则替换js   
  12.         $script->src = preg_replace($ereg_rule_src_script, 'http://www.test.com/js/lib/dianyin_utility_index.js', $script->src);  
  13.     }  
  14.     $content = $html->save();  
  15.     $html->clear();  
  16.     unset($html);  
  17.     die($content);  
  18. }  

 采集提交后页面

 
 simple_html_dom修改后

Java代码   收藏代码
  1. public function rechargeComfirmPage($post_url, $pdata){  
  2.     include_once("lib/Snoopy.class.php");  
  3.     $snoopy = new Snoopy; //Snoopy post提交  
  4.     $snoopy->fetch(self::RECHARGE_URL); //获取所有内容  
  5.     $snoopy->setcookies();  
  6.     $cookies = $snoopy->cookies;  
  7.     $snoopy->cookies = $cookies;  
  8.   
  9.     $snoopy->submit($post_url, $pdata);//$pdata为提交的数组,$post_url采集提交url  
  10.     return $snoopy->results;  
  11. }  
  12.   
  13. public function rechargePostAction(){  
  14.     $pdata['tranCode']          = $this->getRequest()->getPost('tranCode');  
  15.     $pdata['userCode']          = $this->getRequest()->getPost('userCode');  
  16.     $pdata['runName']           = $this->getRequest()->getPost('runName');  
  17.     $post_url      = $this->getRequest()->getPost('post_url');  
  18.     $this->save2db();  
  19.     $results = $this->rechargeComfirmPage($post_url, $pdata);  
  20.     include_once('lib/simple_html_dom.php');  
  21.     $html = str_get_html($results);//采集提交后页面  
  22.     //修改UI  
  23.     $rate = Mage::helper('recharge/data')->getCurrencyToMoney();  
  24.     $ttt= $this->getLayout()->createBlock('virtualcurrency/customer_accounts_detail')->getCurrentMoney();  
  25.     $html->find('div[id=testPoints]',0)->innertext = $html->find('div[id=testPoints]',0)->innertext*$rate."<input type='button'>";  
  26.     $html->find('div[id=test]',0)->innertext='<table><tr>  
  27.             <td width="30%" align="right"><label class="form-label">您的数:</label></td>  
  28.             <td align="left">  
  29.                 <p class="B Font14 ml10 ">  
  30.                     '.$ttt.'  
  31.                 </p>  
  32.             </td>  
  33.         </tr>  
  34.         <tr>  
  35.             <td width="30%" align="right"><label class="form-label">绑定手机号:</label></td>  
  36.             <td align="left">  
  37.                 <p class="B Font14 ml10 ">  
  38.                     '.$this->_getCustomer()->getMobile().'  
  39.                 </p>  
  40.             </td>  
  41.         </tr></table>';  
  42.   
  43.     die($html);  
  44. }  
相关文章
|
7天前
|
SQL 分布式计算 监控
Sqoop数据迁移工具使用与优化技巧:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入解析Sqoop的使用、优化及面试策略。内容涵盖Sqoop基础,包括安装配置、命令行操作、与Hadoop生态集成和连接器配置。讨论数据迁移优化技巧,如数据切分、压缩编码、转换过滤及性能监控。此外,还涉及面试中对Sqoop与其他ETL工具的对比、实际项目挑战及未来发展趋势的讨论。通过代码示例展示了从MySQL到HDFS的数据迁移。本文旨在帮助读者在面试中展现Sqoop技术实力。
22 2
|
15天前
|
PHP 项目管理 开发者
深入解析PHP的命名空间和自动加载机制
【4月更文挑战第4天】 在PHP的编程世界中,命名空间和自动加载机制是构建大型应用程序时不可或缺的工具。本文将深入探讨这两个概念,揭示它们如何简化代码结构、避免类名冲突以及提高代码维护性。通过对PHP命名空间的由来、作用域和使用方法的细致剖析,以及对自动加载机制工作原理和应用实践的全面讲解,读者将获得有效管理复杂项目中依赖关系的能力。
|
20天前
|
数据可视化 搜索推荐 BI
深度解析好用项目管理工具的功能优势
在选择项目管理工具时,重点在于全面的功能和高性价比。好工具应具备资源利用图(避免过度分配或闲置资源),团队协作功能(促进沟通与进度追踪),质量管理(如问题跟踪和自定义工作流),项目规划和跟踪(甘特图支持),任务管理(任务分解和依赖关系),以及费用跟踪。Zoho Projects、Microsoft Project、Jira等工具各有价格差异,例如,对于50个用户,Microsoft Project最贵,Zoho Projects最实惠,性价比高,适合中小企业。
28 2
|
30天前
|
PHP 开发者
深入解析PHP的命名空间
【2月更文挑战第29天】 在现代PHP开发中,命名空间是管理代码和避免命名冲突的重要工具。本文将探讨PHP命名空间的核心概念、实现原理及其在实际项目中的应用场景。我们将通过示例代码和最佳实践,帮助开发者更好地理解和运用命名空间,以提升代码的可维护性和复用性。
|
1月前
|
JavaScript 前端开发 数据可视化
html解析过程
html解析过程【2月更文挑战第26天】
22 6
|
1月前
|
XML 前端开发 数据格式
请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
【2月更文挑战第22天】【2月更文挑战第67篇】请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
|
4天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
13天前
|
前端开发 JavaScript
HTML深度解析:更改文本颜色
【4月更文挑战第1天】
29 0
HTML深度解析:更改文本颜色
|
15天前
|
测试技术 PHP 开发者
PHP 7.4新特性深度解析
【4月更文挑战第4天】 本文将深入探讨PHP 7.4的新特性,包括预加载,数组解构,扩展的箭头函数等。我们将详细解释这些新特性的作用,以及如何在项目中使用它们来提高代码的效率和可读性。
|
26天前
|
运维 Linux Apache
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
197 2

推荐镜像

更多