我正在学习使用Beautiful Soup从网站上抓取一些信息。该网站有多个我要抓取的搜索结果页面。
这很简单,因为每个页面的URL都会更改:
website.com/page1
website.com/page2
.
.
但是我不预先知道会有多少页。因此,如果没有website.com/page13
或website.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'
}
。
到达最终结果页面时,有没有办法停止抓取?
答案 0 :(得分:1)
通常,搜索页面的搜索结果带有某种索引。如果您正在查看的页面已说要编制索引,则当您两次看到相同的索引时可以停止索引。
另外,您可能会在页面底部遇到分页结果,并且可以从哪个页面上知道您是否在该列表的分页末尾。
此外,搜索页面通常在每个页面上显示一定数量的结果,因此在这种情况下,如果结果突然少于该页面,则可以假定您所在的页面是最后一页。
在重复页面的情况下进行区分的另一种方法是,将第一个结果与当前页面保持一致,并将其与下一页的第一个结果进行比较,如果它们相同,那么您就可以完成。
如果您可以在此页面上提供更多详细信息,或者尝试在问题范围内提供更多详细信息,我可能会提供其他输入。