2011-04-08 153 views
0

我最近被指控犯了一個讓我頭痛的任務。我的俱樂部希望通過網站找到正在做我們自己的人。如何解析/抓取/抓取特定信息的網站?

當前使用的方法是進入維基百科,獲取每個城市的列表(例如:List of cities in alabama),進入每個網站(例如:meetup,facebook,craigslist等),然後執行搜索關鍵字,在每個城市,爲每個網站。 (例如:功夫,武術等)

所以460個城市X 5個網站X 5個關鍵詞= 11500個不同的搜索=頭腦麻木單調。

我真的希望有一個更簡單的方法。在尋找答案時,我遇到了這個網站(building a web spider),並認爲這可能是一種方式。

問題是:我可以修改一些網頁蜘蛛(在該網站或任何其他)做搜索,並只返回結果返回true的關鍵字?我不在乎它是一個bash腳本,Python,紅寶石或任何其他語言。

讓我知道,如果有任何不清楚,並抱歉,如果它有點冗長。

+0

難道你不能只用谷歌? – 2011-04-08 04:17:45

+0

我不熟悉這個「谷歌」你說... 大聲笑在所有認真的谷歌搜索沒有找到我需要的所有東西,即使它做了相同的搜索11500次到達我的目的地的過程。同時我也希望爲這次考驗學到一些東西,這就是爲什麼我希望找到某種代碼。 – Guy0203 2011-04-08 04:33:45

+0

也許scrapy可能有用嗎? http://scrapy.org/ – juanchopanza 2011-04-08 06:40:16

回答

0

我不會爲這麼簡單的事情創建一個真正的網絡爬蟲。我想就足夠是:在一個文件中的城市

  1. 獲取列表,說cities.txt
  2. 圖出使用什麼URL模式從網站搜索(手動或數字出來的東西是可行的),你想。
  3. 編寫一個shell腳本,它可以進行所有搜索並保存結果。
  4. 分析數據在硬盤上(例如,圖其XPath的比賽結果對每個內容提供商,並與他們搜索)

數據採集部分應該是簡單與wget

for city in `cat cities.txt`; do 
    for keyword in 'kung-fu' 'martial arts'; do 
    wget http://searchsite1.com/?search=${keyword}&city=${city} 
    wget http://searchsite2.com/groups/search?q=${keyword}+${city} 
    done 
done 

其他部分需要一點點搞清楚你自己。 YMMV,我就是這麼做的。

+0

非常感謝,這讓我走上了正確的道路。現在我只需要弄清楚如何使用awk和gsub,我會在那裏一半! – Guy0203 2011-04-11 04:22:04