laravel 5 的简单 html dom 解析器

Posted

技术标签:

【中文标题】laravel 5 的简单 html dom 解析器【英文标题】:Simple html dom parser for laravel 5 【发布时间】:2015-05-17 23:51:24 【问题描述】:

在哪里可以找到 ? 我正在寻找这样的想法:http://simplehtmldom.sourceforge.net/manual.htm

【问题讨论】:

Packagist 上有 ported packages available 可以用 Composer 安装并在 Laravel 中使用?或者你需要 Laravel 服务提供者和/或 Facades? 【参考方案1】:

我推荐 paquettg,它很简单,也允许更新 dom

https://packagist.org/packages/paquettg/php-html-parser?fbclid=IwAR0j7MMlMc5eY3qQfHbXuqd0AVocjpIoHBxUJWgUIUWRuAeDsFOEDLCIdwk

【讨论】:

【参考方案2】:

我推荐FriendsOfPHP/Goutte,它当之无愧是GitHub上最受欢迎的PHP爬虫之一。

控制器

$crawler->filter('a[class="o_title"][href]')->each(function ($node) 
    $hrefs[] = $node->attr('href'); 
);

return view('some-template', ['hrefs' => $hrefs]);

查看

@foreach ($hrefs as $href)
     $href 
@endforeach

你的情况是:

$crawler = $client->request(
    'GET', 
    'http://www.oglaszamy24.pl/ogloszenia/nieruchomosci/domy/?std=1&results=100000'
);
$text = $crawler->filter('.resultpages_current')->text();
$numPages = intval(preg_replace('/[^0-9]/', '', $text));

【讨论】:

如何获取href列表。我像这样使用 somethink 但它返回 1 行: $info = $crawler->filter('a[class="o_title"][href]')->attr('href'); $crawler->filter('a[class="o_title"][href]')->each(function ($node) $hrefs[] = $node->attr('href'); ); 不错。但是我如何才能在视图中显示它呢? 谢谢,也许你能告诉我,我如何计算网站上有多少页面(例如。) 你能给我你要解析的url,以便我查看html并给你确切的答案吗?

以上是关于laravel 5 的简单 html dom 解析器的主要内容,如果未能解决你的问题,请参考以下文章

输入字段中的简单 HTML DOM 解析器

本地服务器上的 PHP 简单 HTML DOM 解析器

简单的 HTML DOM 解析器 - 抓取没有 id 或类的 html 内容

简单的 HTML DOM 解析器 - 删除元素不起作用

java代码用dom4j解析xml文件的简单操作

缓存 PHP 简单 HTML DOM 解析器