巅云智能建站平台搭建版(创业流派版)火爆上线,毕生受权!新增:文章智能收罗+全站真静态打包+都会分站+智能小法式+不法词过滤+H5自顺应+智能链词等功效功效概况
赞助文档Help

在laravel中操纵Symfony的Crawler组件阐发HTML

一佰互联网站建造(www.taishanly.com) 宣布日期 2020-04-25 14:41:32 阅读数: 126

Crawler全名是DomCrawler,是Symfony框架的组件。使人发指的是DomCrawler的不中文文档,Symfony也不翻译该局部,以是操纵DomCrawler开辟只能一点一点试探,现将操纵进程中的经历总结。

起首是装置

composer require symfony/dom-crawler
composer require symfony/css-selector

css-seelctor 是 css挑选器,用css挑选节点时一些函数会用到

手册外面操纵的例子是

use SymfonyComponentDomCrawlerCrawler;
$html = <<<‘HTML‘
Hello World!
Hello Crawler!
HTML;
$crawler = new Crawler($html);
foreach ($crawler as $domElement)
{
var_dump($domElement->nodeName);
}

打印的成果是

string ‘html‘ (length=4)

由于这段html代码的nodeName便是html,英语不好,起头操纵的时辰还觉得法式错了。。。

现实操纵进程,若是new Crawler($html)会呈现乱码题目,应当是与页面编码有关,以是能够接纳上面的体例,先初始化crawler,而后增加node

$crawler = new Crawler();
$crawler->addHtmlContent($html);

addHtmlContent的第二个参数是charset,默许是utf-8。

其余例子能够参考官方文档,http://symfony.com/doc/current/components/dom_crawler.html

记实一下任务中一点点试出来的用法

filterXPath(string $xpath) 体例,根据手册上的说法,该体例的参数是$xpath,常常用的是p,div等块。

echo $crawler->filterXPath(‘//body/p‘)->text();
echo $crawler->filterXPath(‘//body/p‘)->last()->text();

输入是第一个和下一个p标签块的文本

var_dump($crawler->filterXPath(‘//body‘)->html());

输入body内的html

foreach ($crawler->filterXPath(‘//body/p‘) as $i => $node) {
$c = new Crawler($node);
echo $c->filter(‘p‘)->text();
}

filterXPath获得的是DOMElement块的数组,每一个DOMElement块能够操纵新的crawler东西持续剖析

$nodeValues =
$crawler->filterXPath(‘//body/p‘)->each(function (Crawler $node, $i) {
return $node->text();
});

crawler供给了each轮回,操纵闭包函数简化代码,不过注重的是,这类写法$nodeValues获得的是数组,须要进一步处置。

其余用法

echo $crawler->filterXPath(‘//body/p‘)->attr(‘class‘);

能够获得第一个p标签对应class属性的值“message”

$crawler->filterXPath(‘//div[@class="款式"]‘)->filter(‘a‘)->attr(‘href‘);
$crawler->filterXPath(‘//div[@class="款式"]‘)->filter(‘a>img‘)->extract(array(‘alt‘, ‘href‘))

以上是获得标签属性的一些体例

filter和filterXPath差别,手册上写的是css挑选器,不太大白,我懂得是div这类XPath节点包罗的元素,详细情况还须要在现实开辟中去测验考试。

总的来讲感受DomCrawler要比simple html dom好用一些,能够是我用的比拟浅近。

上述只是Crawler的根基功效,更过用法请查阅symfony手册对于Crawler局部的函数

http://api.symfony.com/3.2/Symfony/Component/DomCrawler/Crawler.html

Crawler首要题目仍是示例太少,函数手册外面不操纵实例,只能在现实操纵中去试探。。。。

symfony对于DomCrawler的文档,外面有多数例子

http://symfony.com/doc/current/components/dom_crawler.html

以上所述是小编给大师先容的在laravel中操纵Symfony的Crawler组件阐发HTML,但愿对大师有所赞助,若是大师有任何疑难请给我留言,小编会实时答复大师的。在此也很是感激大师对网页设想网站的撑持!

一佰互联是天下着名建站品牌办事商,咱们有九年、网站建造、网页设想、php开辟和域名注册及假造主机办事经历,供给的办事更是天下着名。比来几年来还整合团队上风自立开辟了可视化多用户”“3.0平台版,拖拽排版网站建造设想,轻松完成pc站、手机微网站、小法式、APP一体化全网营销网站扶植 ,已胜利的为天下上百家收集公司供给自助建站平台搭建办事。

相干消息more

29
04月
php中require和require_on

include() 和require() :语句包罗并运转指定文件。include() 发生一个正告而 require() 则致使一个致命错... >>概况

28
05月
企业网站扶植计划书和小我网站扶植筹谋书模板p

不论是企业网站扶植仍是企业网站扶植之前都应当制定一个完全的计划,现实上小我网站与企业网站并不明白的界限,若是页面以企业公司信息揭示即为企业... >>概况

26
03月
MySQL大表优化计划

简介:作者:manong来历:http://segmentfault.com/a/1190000006158186当MySQL单表记实数过... >>概况

04
05月
网站优化经历总结

经由过程多年网站优化经历,亿玛客收集营销学院小新以为网站主应当斟酌一以下30个题目来优化本身的网站。 经由过程多年网站优化经历... >>概况

高端网站扶植

美工统筹SEO,为企业电子商务营销助力!

德律风:

023-85725751
建站

产物

域名注册 假造主机 云办事器 企业邮局
智能建站 APP打包 微站/小法式 创业平台
网站推行 媒体营销 智能收罗 AI机械人
400德律风 短信营销 店销机械人
私家定制 流派网站