2010-02-06 27 views
1

作爲RSS練習我希望能夠搜索幾乎所有關於這個組的Unix討論。如何接近Google小組討論抓取工具

comp.unix.shell

我知道足夠Python和理解基本的RSS,但我被困在...我怎麼搶特定日期之間的所有消息,或者至少第N最近和第M最近之間的所有郵件?

高級描述,僞代碼是受歡迎的。

謝謝!

編輯:

我希望能回去郵件超過100封,但不抓住就像在一個時間解析10條消息,如使用該URL:

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

必須有更好的方法。

回答

1

正如Randal提到的那樣,這違反了Google的ToS - 但是,作爲假想的或者在沒有這些限制的情況下在其他網站上使用,您可以很容易地利用urllibBeautifulSoup來安裝某些東西。使用urllib打開頁面,然後使用BeautifulSoup抓取所有線程主題(如果想要更深入地抓取,請使用鏈接)。然後,您可以編程的方式找到下一頁結果的鏈接,然後讓另一個urllib進入第2頁 - 然後重複這個過程。

此時您應該擁有所有原始數據,那麼這只是操縱數據和實現搜索功能的問題。

3

對於N個最近的,好像你可以從comp.unix.shell組通過參數?num=50或某事在飼料網址

例如,50新消息

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

,然後從中挑選如Universal Feed Parser

.update_parsed選項在feedparser,你可以使用它來檢查在pa內msg rticular時間範圍

>>> e.updated_parsed    # parses all date formats 
(2005, 11, 9, 11, 56, 34, 2, 313, 0) 
+0

您可能會將其更改爲1至100。 – YOU

+0

不是,不幸的是,每次超過100個都無法工作。 –

4

蠕谷歌組違反Google's Terms of Service,特別是短語:

使用任何機器人,蜘蛛,站點搜索/檢索應用程序,或其他設備檢索或索引的任何部分爲任何未經授權的目的服務或收集有關用戶的信息

您確定要公開表明您這麼做嗎?你是否對結果的後果視而不見?

1

你有沒有想過yahoos YQL?這不是太糟糕,可以訪問很多API。 http://developer.yahoo.com/yql/

我不知道組是否支持,但你可以訪問rss提要。可能有幫助。