我一直在嘗試用 Python 和 Selenium 抓取網頁并遇到了這個問題。基本上,我正在報廢的網頁在帶有分頁的表格中顯示資訊,因此我想從所有頁面中獲取資訊。這是當我在一個不是最后一頁的頁面(在本例中為第 2 頁)時分頁系統的 HTML:
<span class="pagelinks">
" ["
<a href="?page=1">First</a>
"/"
<a href="?page=2">Previous</a>
"] "
<a href="?page=1" title="Go to page 1">1</a>
", "
<strong>2</strong>
", "
<a href="?page=3" title="Go to page 3">3</a>
" ["
<a href="?page=3">Next</a>
"/"
<a href="?page=3">Last</a>
"] "
</span>
這是我到達最后一頁時得到的 HTML(在本例中為第 3 頁):
<span class="pagelinks">
" ["
<a href="?page=1">First</a>
"/"
<a href="?page=2">Previous</a>
"] "
<a href="?page=1" title="Go to page 1">1</a>
", "
<a href="?page=2" title="Go to page 2">2</a>
", "
<strong>3</strong>
" [Next/Last]"
</span>
在這種情況下,第 3 頁被選中并顯示為<strong>,但這取決于當前頁面。
為了檢查我是否在最后一頁,我想檢查文本“[Next/Last]”是否是<strong>標記之后的下一個文本,以停止檢索資訊的 while 回圈,但由于該文本不在任何標簽,我沒有辦法檢查這個,我該如何檢查它?
uj5u.com熱心網友回復:
根據您更新的解釋,我們可以查找a帶有href屬性和Next文本的內容。Last文本也可以這樣做。
使用 Selenium / Python,您可以簡單地使用這一行:
if driver.find_elements(By.XPATH, "//span[@='pagelinks']//a[@href][contains(text(),'Next')]"):
#do what you need to do while still not on the last page
#otherwise you this block will be skipped
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/531040.html
