如何解析/抓取/抓取网站以获取特定信息?

时间:2011-04-08 04:15:22

标签: python parsing wget web-crawler

我最近被指控了一项令我震惊的任务。我的俱乐部希望通过网站找到正在做我们现在的人。

目前正在使用的方法是去维基百科,获取每个城市的列表(例如:List of cities in alabama),去每个网站(例如:meetup,facebook,craigslist等),然后执行在每个城市中搜索每个站点的每个关键字。 (例如:功夫,武术等)

所以460个城市X 5个站点X 5个关键词= 11500个不同的搜索=头脑麻木单调。

我真的希望有一种更简单的方法。在寻找答案时,我遇到了这个网站(building a web spider ),并且认为这可能就是这样。

问题是:我可以修改一些网络蜘蛛(在该网站或任何其他网站上)进行搜索并仅返回对关键字返回true的结果吗?我不在乎它是一个bash脚本,python,ruby还是任何其他语言。

如果有任何不清楚的地方,请告诉我,如果它有点冗长,请告诉我。

1 个答案:

答案 0 :(得分:1)

我不会为这么简单的事情创建一个真正的网络爬虫。我认为足够的是:

  1. 获取文件中的城市列表,例如cities.txt (可手动执行或计算出来)
  2. 找出用于从您想要的网站进行搜索的网址模式。
  3. 编写一个shell脚本,进行所有搜索并保存结果。
  4. 分析硬盘上的数据(例如,XPath匹配每个内容提供商的结果,并使用它们进行搜索)
  5. 数据采集部分应该简单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。