使用Beautiful Soup和Python刮擦多个搜索页面的结果

时间:2018-12-11 14:11:13

标签: python beautifulsoup

我正在学习使用Beautiful Soup从网站上抓取一些信息。该网站有多个我要抓取的搜索结果页面。

这很简单,因为每个页面的URL都会更改:

website.com/page1
website.com/page2
.
.

但是我不预先知道会有多少页。因此,如果没有website.com/page13website.com/page13仅显示了可能是website.com/page9的最后一个结果页面,我不想尝试刮除plugins { id 'java' } group 'com.test' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' api group: 'com.google.guava', name: 'guava', version: '27.0.1-jre' }

到达最终结果页面时,有没有办法停止抓取?

1 个答案:

答案 0 :(得分:1)

通常,搜索页面的搜索结果带有某种索引。如果您正在查看的页面已说要编制索引,则当您两次看到相同的索引时可以停止索引。

另外,您可能会在页面底部遇到分页结果,并且可以从哪个页面上知道您是否在该列表的分页末尾。

此外,搜索页面通常在每个页面上显示一定数量的结果,因此在这种情况下,如果结果突然少于该页面,则可以假定您所在的页面是最后一页。

在重复页面的情况下进行区分的另一种方法是,将第一个结果与当前页面保持一致,并将其与下一页的第一个结果进行比较,如果它们相同,那么您就可以完成。

如果您可以在此页面上提供更多详细信息,或者尝试在问题范围内提供更多详细信息,我可能会提供其他输入。