php - 简单的 Html Dom 抓取页面的一半
问题描述
我正在尝试使用 simple-html-dom 抓取此网址https://nrg91.gr/nrg-airplay-chart/,但它似乎没有获得完整的 html 源代码。这段代码:
include_once('simple_html_dom.php');
$html = file_get_html('https://nrg91.gr/nrg-airplay-chart');
echo $html->plaintext;
显示内容直到 h1,就在我之后的内容之前。从 simple-html-dom 手动示例中,这应该显示来自该 url 的所有链接:
foreach($html->find('a') as $e)
echo $e->href . '<br>';
但它只显示到主导航菜单的链接,而不是来自主体或页脚的链接。
我还尝试使用 prerender.com,在将 url 传递给 file_get_html 之前完全加载它,但结果是一样的。我究竟做错了什么?
解决方案
那个库看起来已经 7 年没有更新过了。我总是推荐使用PHP 的内置函数:
$url = "https://nrg91.gr/nrg-airplay-chart/";
$dom = new DomDocument();
libxml_use_internal_errors(true);
$dom->load($url);
foreach($dom->getElementsByTagName("a") as $e) {
echo $e->getAttribute("href") . "\n";
}
推荐阅读
- python-sphinx - 可以将多个段落替换为 reStructuredText 表格单元格吗?
- gcc - 线程程序使用 g++ 运行,但不使用 gcc
- php - 如何在以其他用户身份登录时编写代码以选择其他人的其他用户 ID
- c++ - gtk 图像突然不刷新没有任何错误或警告
- python - 函数式编程:如何将用python编写的斐波那契实现转换为haskell
- c# - 如何检查默认 SQL DateTime 值 C#
- c++ - 如何在创建对象时从 QML 调用任意 C++ 函数?
- python - 导入错误:无法导入 get_close_matches
- reactjs - 表单输入的值在 React 中提交时未更新
- tensorflow - 我在哪里可以找到模型使用的损失指标类型?