【问题标题】:How can i parse/scrape/crawl sites for specific information?我如何解析/抓取/抓取网站以获取特定信息?
【发布时间】:2011-04-08 04:15:22
【问题描述】:

我最近被指控一项令我大吃一惊的任务。我的俱乐部想要浏览网站并找到正在做我们工作的人。

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

所以 460 个城市 X 5 个网站 X 5 个关键字 =11500 次不同的搜索 = 单调麻木。

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

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

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

【问题讨论】:

  • 我不熟悉你所说的这个“谷歌”......大声笑,谷歌搜索并没有找到我需要的所有东西,即使它执行了相同的搜索过程 11500 次到达我的目的地。而且我也想为这种磨难学习一些东西,这就是为什么我希望找到某种代码。
  • 也许scrapy可能有用? scrapy.org

标签: python parsing wget web-crawler


【解决方案1】:

我不会为这么简单的事情创建真正的网络爬虫。我认为这样做就足够了:

  1. 获取文件中的城市列表,例如cities.txt (可以手动完成或想办法)
  2. 找出用于从您想要的网站中搜索的 URL 模式。
  3. 编写一个执行所有搜索并保存结果的 shell 脚本。
  4. 分析硬盘驱动器上的数据(例如,找出 XPaths 匹配每个内容提供者的结果,并使用它们进行搜索)

数据采集部分应该很简单,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。

【讨论】:

  • 非常感谢,这让我走上了正确的道路。现在我只需要弄清楚如何使用 awk 和 gsub 就可以了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-18
  • 1970-01-01
  • 2021-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多