【问题标题】:Scraping <li> contents with PHP dom使用 PHP dom 抓取 <li> 内容
【发布时间】:2011-06-12 07:19:54
【问题描述】:

我如何使用 PHP dom 屏幕抓取来提取名为

的 HTML 标记的内容

&lt;li style="margin-top:10px"&gt;

位于我的一个页面中?

我想获取&lt;li&gt;标签的所有内容,并将其显示为html代码。

【问题讨论】:

  • 我发现使用 preg_match 足以进行抓取。此外,html 也不必是 xml。
  • @Gerben: 请.. 永远不要再建议使用正则表达式进行 html 解析:/ stackoverflow.com/questions/1732348/…
  • 哈哈,Regex 执行机构这次只用了一分钟就到了。
  • @ThiefMaster 他不想解析html,只提取其中的一部分。

标签: php html dom


【解决方案1】:

使用 simpleXML 和 xpath。假设您的 HTML 都存储在字符串 $html 中,这可能符合您的需要:

// Load your html from a file
$html = $file_get_contents("/path/to/page.html");
$xml = simplexml_load_string($html);

$li = $xml->xpath("//li[@style='margin-top:10px]");
echo $li->asXML();

【讨论】:

  • @Callum Whyte 见上面的补充:file_get_contents()
【解决方案2】:
$html='<li style="margin-top:10px">hello <b>World</b></li>';
if( preg_match('|<li style="margin-top:10px">(.*?)</li>|', $html, $matches) )
{
  $licontent = $matches[1];
}

【讨论】:

  • 这实际上可以完成手头的工作。只是不要养成使用正则表达式进行更复杂解析的习惯。
猜你喜欢
  • 1970-01-01
  • 2015-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多