2010-03-09 14 views
1

我想這個URL刮:https://www.xstreetsl.com/modules.php?searchSubmitImage_x=0&searchSubmitImage_y=0&SearchLocale=0&name=Marketplace&SearchKeyword=business&searchSubmitImage.x=0&searchSubmitImage.y=0&SearchLocale=0&SearchPriceMin=&SearchPriceMax=&SearchRatingMin=&SearchRatingMax=&sort=&dir=asc我想用GAE刮網站和結果發佈到谷歌實體

進入每一個環節,並如提取出各種信息權限,元素等,然後將結果發佈到谷歌應用引擎上的實體。

我想知道最好的方法去呢?

克里斯

回答

3

爲了使用純Python庫規範化HTML,我已經比使用BeautifulSoup的html5lib有更好的體驗。

但是,您只是想提取簡單的結構化信息,實際上並不需要對HTML進行標準化。我在Google App Engine上有幾個使用my own xpath library的應用程序,它可以與原始HTML一起使用。 或者,您可以使用正則表達式進行一個關閉作業。

3

有幾個很好的屏幕抓取庫,你可以在Python中使用。

也許最容易敲一個先進的刮刀是scrapy。它依靠Twisted實現主引擎,但提供了一個非常容易使用的界面來實現自定義刮碼。

否則,您可以使用類似BeautifulSoupMechanize的手動方式更加手動,它提供了「機械」瀏覽器實現。

BeautifulSoup和Mechanize應該都可以在App Engine上開箱即用 - 它提供了一個使用urlfetch作爲後端的httplib和urllib的包裝。由於使用扭曲,只有scrapy會有問題。 [感謝尼克約翰遜的更新]。

+2

GAE提供了urlfetch模塊作爲繞過套接字開放限制的一種方式。 – 2010-03-09 03:57:10

+0

@gnibbler:多數民衆贊成在知道:我想問題是,它將不會與我列出的任何框架開箱即用,所以這意味着從頭開始寫一些東西。雖然BeuatifulSoup仍然可以用來處理結果。感謝您的單挑+1。 – jkp 2010-03-09 05:17:12

+0

你仍然可以在GAE上使用urllib2,但是它隨後被包裹在urlfetch中,並且刪除了一些功能 – hoju 2010-03-09 05:39:42