爬取网络的“智能”方式

爬取网络的“智能”方式

我有一个项目,需要爬取网络lyrics,我正在实现depth-first search并在列表中创建数据库(其中包含嵌套列表,稍后将保存在文件中)。我的想法是获取网站的 HTML 内容并将其保存在文件中,然后从中解析出歌词。但问题是它非常慢,而且我不需要页面(广告链接)。有没有解决方案或“更好”的实现机器人的方法?

答案1

为了给出具体的建议,我们必须查看您的代码。但是,HTML 解析是一个非常困难的问题;请务必使用现有的解析库,而不要尝试创建自己的解析库。

一般来说,最好使用广度优先搜索而不是深度优先来实现网络爬虫。深度优先搜索通常会对同一域和路径进行多次调用;网站可以检测到这种情况,并且您的爬虫可能会受到限制甚至被阻止。广度优先爬虫可以避免这种情况,并且有更多的优化机会;例如,识别出两个网站是彼此的副本,并放弃速度较慢的网站。

答案2

歌词通常是 TXT 格式,而广告不是,因此您可以将搜索限制为文本。这样做的缺点是您肯定会错过一些 HTML 歌词。

相关内容