【问题标题】:How do I search for a link in this web site (on Linux)?如何在此网站中搜索链接(在 Linux 上)?
【发布时间】:2011-08-25 21:39:26
【问题描述】:

我正在尝试为 mako.co.il 编写一个 xbmc 插件(我知道有一个 xbmako,但我无法在 linux 上安装它)。当我尝试对剧集网站进行正则表达式时,我没有得到任何结果。我试过这个网页,我可以找到使用a href=".*?">\n\t*<img的链接

这是一个测试站点: http://www.mako.co.il/mako-vod-keshet/aharoni_cooks

这里是教程: http://wiki.xbmc.org/index.php?title=HOW-TO_write_plugins_for_XBMC

我认为这与换行符有关,我想到的解决方案是搜索任何有 a href=".*?"> 后跟任何东西,然后是 \t<img 的东西

编辑:
好的,所以我尝试使用这种 dom xml 解析方式。我现在被卡住了,因为在第 101 行我有一个(javascript?)部分带有一个 for 循环,解析器认为它是一个标签......

【问题讨论】:

  • 不要使用正则表达式 (stackoverflow.com/questions/1732348/…) 解析 HTML。相反,解析 DOM。
  • 所以...我不知道网页的xml文件在哪里...查看添加的链接,我想我可以将其应用于xhtml文件...travisglines.com/web-coding/python-xml-parser-tutorial
  • 不是 XML,[X]HTML。使用 DOM 解析器解析页面上的 [X]HTML。
  • @Jack Maney:我不确定我是否理解你。我应该对网站上的(下载的)xml 文件使用 xml 逻辑吗?
  • 不,不是 XML(除非您要查找的信息隐藏在 XML 中)。您必须选择一种您熟悉的语言并使用以该语言编写的 DOM 解析器。例如,一个快速的 Google 搜索会在 PHP 中找到一个 DOM 解析器:simplehtmldom.sourceforge.net 如果您了解 JavaScript,那么还有几个库(Dojo 和 jQuery 是立即想到的两个)可以让您轻松地按类型抓取元素(例如抓取所有锚标签)。

标签: python regex xbmc


【解决方案1】:

该站点使用 CR-LF 换行,但您的正则表达式假定它们是 LF。您可以通过检查两种样式来解决这个问题:

a href=".*?">\r?\n\t*<img
【解决方案2】:

使用 DOM 解析器

您不应手动解析 HTML 文件。相反,请尝试使用 DOM 解析器。对于一般 Python 代码,我建议使用 minidomElementTree

XBMC

既然你提到了XBMC,我建议你使用Parsedom插件,它就是为此而设计的。

插件页面向您展示如何列出所有a 标签,或选择某些标签。

【讨论】:

    猜你喜欢
    • 2023-03-28
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多