所以我有幾個網頁我想要訪問,每個頁面都有我想要計數的項目列表,然後單擊下一頁按鈕直到最後一頁並返回List[Double]
(每個頁面內我需要解析一些值,這就是爲什麼Double
變量)。使用遞歸循環網頁 - 函數不處理第一頁
所以我有這個isNextPageExist
功能的情況下,返回下一個頁面URL
它存在和None
否則:
def isNextPageExist(): Option[String] = {
}
此函數計算網頁的總量:
def calculatePageValue(): Double = {
}
和遞歸功能:
def getTotalValue(option: Option[String]): List[Double] = {
option match {
case Some(x) => {
driver.get(isNextPageExist.get)
calculatePageValue() :: getTotalValue(isNextPageExist)
}
case None => Nil
}
}
所以這工作正常,除了這個功能不計算第一頁的事實。 當我將這個函數稱爲第一頁時,我需要計算這個頁面,然後進入下一頁。
順便說一句我有另一個2函數返回Boolean
:isFirstPage
和isLastPage
但我不知道是否需要使用它們。
現在最後頁面丟失... –
只是要注意的,我寫這個解決方案,我沒有訪問Scala編譯器在機器上等等代碼中可能存在拼寫錯誤或類似錯誤。 –
沒有錯字,但行val nextValues:List [Double] = isNextPageExist2.map {nextUrl => getTotalValue(nextUrl)一次又一次地運行,並且第一頁在循環中 –