2011-01-25 45 views
2

有许多网站和博客提供RSS源,但另一方面也有许多网站和博客不提供RSS源。我想将这种类型的网页转换为RSS提要。如何以编程方式将任何网页转换为RSS提要?

我发现了一些使用谷歌的解决方案,如Feed43,Page2rss,Dapper等,但我想要一个可以执行此任务的开源项目或任何教程来解释它。

请给我建议,如果你能解释,你是最受欢迎的。

我的首选语言是PHP。

+0

您需要解释更多关于您想要完成的内容。例如,Page2RSS只是简单地提供页面更改的Feed,而Feed43则尝试分解页面的组件,并将它们用作Feed内容。无论如何,这是一团糟。几乎每个网站都提供RSS源。那些不可能没有内容在Feed中运行良好的内容。如果您可以更多地告诉我们您的意图和期望的结果,也许我们可以提供一个很好的答案。 – Brad 2011-01-25 16:01:56

回答

6

RSS没有什么魔力。我建议你阅读本教程以了解如何从头构建一个RSS feed:

http://www.xul.fr/en-xml-rss.html

然后使用您的PHP技能来构建一个从您的内容。通过搜索“html to rss converter”或其他方式可以在网上找到一个通用的HTML到RSS的刮板,但其中大多数将是托管解决方案,它们生成的RSS源并不是那么好。一个好的RSS源需要理解你联合的内容,而不仅仅是原始的HTML。恕我直言。

2

一般来说,不会有任何“一码通全”的解决方案。您必须检查您想要构建RSS源的博客的HTML结构,然后解析出您感兴趣的内容,并将其粘贴到RSS源中。

这里的一些PHP的东西,以帮助您开始:

解析HTML:

  • DOMDocument(HTML/XML解析的瑞士军刀刀)
  • SimpleXML(易于使用,但需要有效的XML)
  • Tidy(可用于清理不良HTML)

了解RSS订阅:

用PHP构建它们,你可以再次使用DOM文档或SimpleXML的。另一种选择是,根据要转换为RSS的HTML格式,您可以创建一个XSLT样式表来转换它。

1

这个问题没有简单或具体的答案,但我会让你开始。

首先,您需要构建一个爬行器。通常,你会希望这是多线程的,并在服务器的后台运行。这可能与在服务器上分配PHP进程一样简单,但您可能会发现更有效的方式,具体取决于您期望的流量。

现在可能最好的方法就是阅读DOM。请参阅http://php.net/manual/en/class.domdocument.php查找标题并尝试将它们与它们下面的段落关联。请注意,虽然这可能不到一半的网站(并且可能远远少于那些尚未拥有Feed的网站),但不要以有组织的方式组织他们的网站。但是,这是一个开始的地方。

你也可以使用很多元素属性,例如alt文本。此外,您可能会发现很多网站使用特定的模板,您可以编写代码直接处理。

您还应该阅读现有的提要。如果一个网站有一个饲料,没有意义为它生成一个,对吧?使用SimplePie开始,但有些选择你不喜欢它。 http://simplepie.org/

解析页面后,您需要数据库后端跟踪它并进行更改,而不是更改。

从那里,你需要一些东西来生成饲料。这样做有很多OOP类。很多时候,我只是写我自己的,但这取决于你。

相关问题