设为首页 收藏本站
查看: 667|回复: 0

[经验分享] 使用php simple html dom parser解析html标签

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-4-6 08:41:34 | 显示全部楼层 |阅读模式
  用了一下

PHP Simple HTML DOM Parser


  解析HTML页面,感觉还不错,它能创建一个DOM tree方便你解析html里面的内容。用来抓东西挺好的。
  附带一个例子,你也到sourceforge下载压缩包看里面的例子:



<!---->
<!----><!---->
Scraping data with PHP Simple HTML DOM Parser


<!---->  

 Stumble Upon it!


 
<!---->  
  
 Save to Del.icio.us
  (9saves)


 
<!---->  

 Share on Twitter!


<!---->
8
comments


<!---->  PHP Simple HTML DOM Parser
,
written in PHP5+, allows you to manipulate HTML in a very easy way.
Supporting invalid HTML, this parser is better then other PHP scripts
using complicated regexes to extract information from web pages.
  Before getting the necessary info, a DOM should be created from
either URL or file. The following script extracts links & images
from a website:

view plain
copy to clipboard
print
?





  • // Create DOM from URL or file
      

  • $html
     = file_get_html(
    'http://www.microsoft.com/'
    );  

  •   
  • // Extract links
      

  • foreach
    (
    $html
    ->find(
    'a'

    as
     
    $element
    )  

  •        echo
     
    $element
    ->href . 
    '<br>'
    ;   

  •   
  • // Extract images
      

  • foreach
    (
    $html
    ->find(
    'img'

    as
     
    $element
    )  

  •        echo
     
    $element
    ->src . 
    '<br>'
    ;  




// Create DOM from URL or file
$html = file_get_html('http://www.microsoft.com/');
// Extract links
foreach($html->find('a') as $element)
echo $element->href . '<br>';
// Extract images
foreach($html->find('img') as $element)
echo $element->src . '<br>';

  The parser can also be used to modify HTML elements:

view plain
copy to clipboard
print
?





  • // Create DOM from string
      

  • $html
     = str_get_html(
    '<div id="simple">Simple</div><div id="parser">Parser</div>'
    );  

  •   
  • $html
    ->find(
    'div'
    , 1)->
    class
     = 
    'bar'
    ;  

  •   
  • $html
    ->find(
    'div[id=simple]'
    , 0)->innertext = 
    'Foo'
    ;  

  •   
  • // Output: <div id="simple">Foo</div><div id="parser" class="bar">Parser</div>
      

  • echo
     
    $html
    ;  




// Create DOM from string
$html = str_get_html('<div id="simple">Simple</div><div id="parser">Parser</div>');
$html->find('div', 1)->class = 'bar';
$html->find('div[id=simple]', 0)->innertext = 'Foo';
// Output: <div id="simple">Foo</div><div id="parser" class="bar">Parser</div>
echo $html;

  Do you wish to retrieve content without any tags?

view plain
copy to clipboard
print
?





  • echo
     file_get_html(
    'http://www.yahoo.com/'
    )->plaintext;  




echo file_get_html('http://www.yahoo.com/')->plaintext;
  In the package files of this parser
(http://simplehtmldom.sourceforge.net/) you can find some scraping
examples from digg, imdb, slashdot. Let’s create one that extracts the
first 10 results (titles only) for the keyword “php” from Google:

view plain
copy to clipboard
print
?





  • $url
     = 
    'http://www.google.com/search?hl=en&q=php&btnG=Search'
    ;  

  •   
  • // Create DOM from URL
      

  • $html
     = file_get_html(
    $url
    );  

  •   
  • // Match all 'A' tags that have the class attribute equal with 'l'
      

  • foreach
    (
    $html
    ->find(
    'a[class=l]'

    as
     
    $key
     => 
    $info
    )  

  • {  
  • echo
     (
    $key
     + 1).
    '. '
    .
    $info
    ->plaintext.
    "<br />\n"
    ;  

  • }  



$url = 'http://www.google.com/search?hl=en&q=php&btnG=Search';
// Create DOM from URL
$html = file_get_html($url);
// Match all 'A' tags that have the class attribute equal with 'l'
foreach($html->find('a[class=l]') as $key => $info)
{
echo ($key + 1).'. '.$info->plaintext."<br />\n";
}
  NOTEMake sure to include the parser before using any functions of it:

view plain
copy to clipboard
print
?





  • include
     
    'simple_html_dom.php'
    ;  




include 'simple_html_dom.php';
  For more information regarding the usage of this function consider
checking the ‘PHP Simple HTML Dom Parser’ Manual. To download the
package files use the following URL: http://sourceforge.net/project/showfiles.php?group_id=218559
.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-360798-1-1.html 上篇帖子: 在 WebSphere sMash 中集成 Java 和 PHP 下篇帖子: PHP Zend Framework单表CRUD入门示例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表