首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析从mochiweb_html得到的结果

解析从mochiweb_html得到的结果
EN

Stack Overflow用户
提问于 2013-04-22 21:21:10
回答 2查看 1.2K关注 0票数 2

我想从一个html文件(没有xml)中解析一些内容。

此时,我使用mochiweb_html检索要解析的结构:

代码语言:javascript
复制
1> inets:start().
2> {ok, {Status, Headers, Body}} = httpc:request("http://www.google.com").
3> {String, Attributes, Other} = mochiweb_html:parse(Body).

结果是这样的:

代码语言:javascript
复制
{<<"html">>,
 [{<<"itemscope">>,<<"itemscope">>},
  {<<"itemtype">>,<<"http://schema.org/WebPage">>}],
 [{<<"head">>,[],
   [{<<"meta">>,
     [{<<"itemprop">>,<<"image">>},
      {<<"content">>,<<"/images/google_favicon_128.png">>}],
     []},
    {<<"title">>,[],[<<"Google">>]},
....

从从mochiweb_http获取的结构中检索网页中具有特定标签和特定类(例如<span id="footer">)的所有元素的最佳方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-23 17:57:10

您可以使用mochiweb_xpath

代码语言:javascript
复制
> mochiweb_xpath:execute("//span[@id='footer']",
    mochiweb_html:parse(
      "<html><body><span>not this one</span><span id='footer'>but this one</span></body></html>")).
[{<<"span">>,
  [{<<"id">>,<<"footer">>}],
  [<<"but this one">>]}]
票数 6
EN

Stack Overflow用户

发布于 2013-04-23 03:40:32

这取决于您的性能要求。

mochiweb结果是一个3元组形式,可以很容易地将其转换为适合xmerl的输入。大部分工作将是将属性名称转换为原子。然后,您可以使用xmerl_xpath进行一些非常灵活的查询。

否则,您可以编写一些灵活性较差(但可能更快)的代码来遍历树。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16148202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档