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

0 投票
1 回答
2533 浏览
提问于 2025-04-16 15:19

最近我接到了一个让我感到很震惊的任务。我的俱乐部想要浏览一些网站,找出那些和我们做同样事情的人。

现在使用的方法是先去维基百科,获取每个城市的列表(比如:阿拉巴马州城市列表),然后访问每个网站(比如:meetup、facebook、craigslist等),接着在每个城市的每个网站上搜索每个关键词。(比如:功夫、武术等)

这样算下来就是460个城市乘以5个网站乘以5个关键词,总共要进行11500次不同的搜索,真是让人感到无聊得要命。

我真的希望能有更简单的方法。在寻找答案的过程中,我发现了这个网站(构建一个网络爬虫),我在想这可能是个解决办法。

我的问题是:我能否修改这个网站上的某个网络爬虫(或者其他地方的爬虫),让它进行这样的搜索,并只返回那些符合关键词的结果?我不在乎用什么语言,比如bash脚本、python、ruby等。

如果有哪里不清楚,请告诉我,抱歉如果我说得有点啰嗦。

1 个回答

1

我不会为了这么简单的事情去做一个真正的网络爬虫。我觉得可以这样做:

  1. 先把城市的列表放在一个文件里,比如叫 cities.txt (可以手动做,也可以想办法自动生成)
  2. 弄清楚你想要的网站是用什么样的URL格式来搜索的。
  3. 写一个脚本,自动进行所有的搜索,并把结果保存下来。
  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

其他的部分就需要你自己动动脑筋了。这是我会这么做的,你可以根据自己的情况调整。

撰写回答