2011-04-08 107 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