在laravel中使用Symfony的Crawler组件分析HTML
来源:诚信在线    发布时间:2017-07-01 15:08:28

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

  上述只是Crawler的基本功能,更过用法请查阅symfony手册对于Crawler全体的函数

  filterXPath(string $xpath) 方式,依照手册上的说法,该法子的参数是$xpath,时常用的是p,div等块。

  }

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

  $crawler->addHtmlContent($html);

  composer require symfony/dom-crawler

  手册外面运用的例子是

  composer require symfony/css-selector

  $crawler->filterXPath(‘//body/p‘)->each(function (Crawler $node, $i) {

  filterXPath取得的是DOMElement块的数组,每一个DOMElement块能够运用新的crawler工具持续剖析

  其余例子能够参考民间文档,

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

  string ‘html‘ (length=四)

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

  filter战filterXPath差别,手册上写的是css选择器,没有太大白,尔了解是div这类XPath节点蕴含的元素,具体情况借必要正在现实开辟外来测验考试。

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

  Crawler首要题目照样示例太长,函数手册外面不应用实例,只能正在实践应用外往探索。。。。

  $crawler = new Crawler();

  输出是第一个战下一个p标签块的文本

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

  foreach ($crawler->filterXPath(‘//body/p‘) as $i => $node) {

  总的来说感受DomCrawler要比simple html dom赖用一些,能够是尔用的比力浅易。

  });

  输出body内的html

  打印的结果是

  其余用法

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

  crawler供应了each轮回,应用关包函数简化代码,无非细致的是,这类写法$nodeValues获得的是数组,需求进一步处置。

  $nodeValues =

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

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

  记实一下事情外一点点试进去的用法

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

  echo $c->filter(‘p‘)->text();

  use Symfony\Component\DomCrawler\Crawler;

  return $node->text();

  由于那段html代码的nodeName便是html,英语欠好,开端利用的时辰借觉得顺序错了。。。

  起首是安置

  $html = nodeName);

  }

  以上所述是小编给大师先容的正在laravel外应用Symfony的Crawler组件阐发HTML,希翼对于人人有所协助,要是大师有任何疑难请给尔留言,小编会实时复兴各人的。正在此也无比感激大师对于剧本之野网站的撑持!

  以上是获取标签属性的一些要领

  Crawler全名是DomCrawler,是Symfony框架的组件。怒不可遏的是DomCrawler的不中文文档,Symfony也不翻译该部份,以是应用DomCrawler开辟只能一点一点探索,现将应用历程中的经验总结。

  现实应用历程,假如new Crawler($html)会泛起乱码成绩,应该是取页面编码有关,以是能够接纳上面的体例,先初始化crawler,而后增添node

  $c = new Crawler($node);


诚信在线 除注明原创以外,其余均来自互联网以及微信朋友圈,如有侵权请联系站长立即删除!
文章地址:http://www.my517517.com/CY/20170701373.html



上一篇:Php连接及读取和写入mysql数据库的常用代码 下一篇:Yii2 如何在modules中添加验证码的方法