【问题标题】:Parse HTML page using cURL使用 cURL 解析 HTML 页面
【发布时间】:2014-01-21 13:56:54
【问题描述】:

我想使用cURL 解析一个外部html 页面。 这是我的简单代码:

$ch=curl_init($url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HEADER,0);
$data=curl_exec($ch);
curl_close($ch);

但我不知道如何访问和回显我的愿望标签(例如 div 和 class="news") 注意:我不想使用simple_html_dom。它比 cURL 慢并且会导致一些错误。

【问题讨论】:

  • 这是什么?请解释一下。
  • cURL 与解析无关,它只是一个用于通过网络获取数据的库。因此,simple_html_dom 比 cURL 慢的说法是没有意义的,而且这个问题太开放而无法回答(归结为“我应该如何在 HTML 中找到一些东西?”)
  • IMSoP:我说我不知道​​如何解析收到的数据。
  • @AliN11 您需要更具体地说明您的要求。解析 HTML 的方法有很多,但是对于本网站来说,要求所有这些方法都太宽泛了。你提到你对simple_html_dom 有问题,但不要说它们是什么;也许您可以提出一个问题来帮助解决这些问题?无论哪种方式,cURL 绝对是不相关的,因为它只是给你一个 HTML 字符串,就像你从本地文件加载它一样。

标签: php curl


【解决方案1】:

simple_html_dom 并不慢。你可以像下面那样做你的工作;

<?php
include_once('simple_html_dom.php');
$url =''; // Put your crawl url here
$news = array();
$html = file_get_html($url);
foreach ($html->find('div') as $div){
    if ($div->getAttribute('class') == "news")
    array_push($news, $div->getAttribute('class'));
}

echo implode("\n ", $news);

【讨论】:

  • 你需要提供 url 到 $url,还要确保你有 sşmple_html_dom.php
  • 打开流失败:HTTP 请求失败! HTTP/1.1 500 内部服务器错误
  • 请提供有效的 url 到 $url,查看我的更新答案
  • 如果你熟悉,你需要知道“failed to open stream: HTTP request failed!HTTP/1.1 500 Internal Server Error”表示你的url不可达或无效
  • 但是你说那个页面是html,这个页面是xml。请更新你的问题
猜你喜欢
  • 1970-01-01
  • 2011-03-25
  • 2010-12-03
  • 1970-01-01
  • 2014-08-31
  • 2012-01-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
相关资源
最近更新 更多