首页 > 解决方案 > 如何抓取自动完成?

问题描述

我试图抓取网站的自动完成功能。基本上,我试图在他们的自动完成中获取每个条目。我想到的第一件事是编写递归刮板,因此它会检查所有组合 - aa、aaa、aaab 等(对于所有 26 个字母)。但这似乎非常低效。我的第二种方法是抓取他们的一些文档,计算 Tf-IDF 并提取关键字。这给出了一些不错的结果,但我很确定我无法覆盖他们的整个数据库。还有其他方法吗?你会有什么建议?

问候,

标签: python-3.xweb-scrapingbeautifulsoupautocomplete

解决方案


对于页面:https://indiankanoon.org/

当您在搜索框中输入内容时,它会发出一个请求https://indiankanoon.org/qsuggest/?term=,返回自动完成信息。而不是试图刮https://indiankanoon.org/,而是刮qsuggest页面。

https://indiankanoon.org/qsuggest/?term=aaa

我应该提到,该qsuggest页面仅返回包含 3 个或更多字母的术语的结果。抓取超过 17000 个请求的所有 3 个字母组合。如果您每 5 秒发出一次请求,则需要 60 多天才能获得所有信息,前提是该网站没有首先阻止您。他们确实在网站上列出了一个 API,也许这会有所帮助。


推荐阅读