php爬虫之Simple HTML DOM
都说网络爬虫就用python,但我不这么认为。
尤其是对于熟悉php又对python生疏的coder来说,其实完全不比舍近求远。
只要插件用的好,就没有php办不了的事儿,今天要给大家介绍的这款插件是PHP Simple HTML DOM Parser,html页面解析插件,效率之高,令人拍手叫绝(偷笑),而且操作简便,可以像jquery一样去获取html标签。实在是居家旅行,页面抓取,必备神器。
相关资源
操作手册:https://simplehtmldom.sourceforge.io/manual.htm
下载地址:https://sourceforge.net/projects/simplehtmldom/files/
获取远程地址html元素
// 新建一个dom实例
$html = file_get_html('http://www.baidu.com/');
// 获取所有img标签
foreach($html->find('img') as $element)
echo $element->src . '<br>';
// 获取所有连接
foreach($html->find('a') as $element)
echo $element->href . '<br>';
直接操作html字符串
// 根据字符串创建dom实例
$html = str_get_html('<html><body>Hello!</body></html>');
获取单个元素
// 获取第一个a标签元素
$ret = $html->find('a', 0);
// 获取最后一个a标签元素
$ret = $html->find('a', -1);
获取元素值
// 创建Dom实例
$html = file_get_html('http://www.baidu.com/');
// 获取所有a标签的链接地址
foreach($html->find('a') as $e)
echo $e->href . '<br>';
// 获取所有img标签的src地址
foreach($html->find('img') as $e)
echo $e->src . '<br>';
// 获取所有的img标签内容
foreach($html->find('img') as $e)
echo $e->outertext . '<br>';
// 获取标签id=gbar的div标签内容
foreach($html->find('div#gbar') as $e)
echo $e->innertext . '<br>';
// 获取标签id=gbar的div标签的文本信息
foreach($html->find('div#gbar') as $e)
echo $e->plaintext . '<br>';
如何操作Dom树
// 示例
echo $html->find("#div1", 0)->children(1)->children(1)->children(2)->id;
除此之外,Simple HTML DOM Parser 还可以修改html元素信息,函数回调功能等等。
有兴趣的朋友可以下载下来,照着里面的文档进一步了解。