1

作为 RSS 的练习,我希望能够搜索该组中几乎所有的 Unix 讨论。

comp.unix.shell

我知道足够多的 Python 并且了解基本的 RSS,但我被困在......我如何获取特定日期之间的所有消息,或者至少获取 Nth 最近和 Mth 最近之间的所有消息?

高级描述,欢迎使用伪代码。

谢谢!

编辑:

我希望能够返回 100 多条消息,但不要像一次解析 10 条消息那样抓取,例如使用以下 URL:

http://groups.google.com/group/comp.unix.shell/topics?hl=en&start=2000&sa=N

肯定有更好的办法。

4

4 回答 4

4

抓取 google 群组违反了Google 的服务条款,特别是以下短语:

使用任何机器人、蜘蛛、站点搜索/检索应用程序或其他设备来检索或索引服务的任何部分或为任何未经授权的目的收集有关用户的信息

你确定要这么公开地宣布你这样做吗?你对结果的后果视而不见吗?

于 2010-02-13T18:40:41.450 回答
3

对于 N 最近,您似乎可以?num=50在提要 url 中传递参数或其他内容

例如,来自 comp.unix.shell 组的 50 条新消息

http://groups.google.com/group/comp.unix.shell/feed/atom_v1_0_msgs.xml?num=50

然后拿起像Universal Feed Parser这样的 feedparser 程序

feedparser中有一个.update_parsed选项,您可以使用它来检查特定日期范围内的味精

>>> e.updated_parsed              # parses all date formats
(2005, 11, 9, 11, 56, 34, 2, 313, 0)
于 2010-02-06T03:36:53.140 回答
1

你有没有想过雅虎YQL?还不错,可以访问很多 API。http://developer.yahoo.com/yql/

我不知道是否支持群组,但您可以访问 rss 提要。可能会有所帮助。

于 2010-02-14T03:09:36.860 回答
1

正如 Randal 所提到的,这违反了 Google 的 ToS——但是,作为假设或在没有这些限制的情况下在其他站点上使用时,您可以很容易地使用urllibBeautifulSoup来安装某些东西。使用 urllib 打开页面,然后使用 BeautifulSoup 抓取所有线程主题(如果您想更深入地抓取,还可以使用链接)。然后,您可以以编程方式找到指向下一页结果的链接,然后创建另一个 urllib 以转到第 2 页——然后重复该过程。

At this point you should have all the raw data, then it is just a matter of manipulating the data and implementing your searching functionality.

于 2010-02-14T08:03:37.577 回答