【发布时间】:2018-08-23 14:06:25
【问题描述】:
我正在使用 Python 和 Selenium 抓取这个网站。但它目前只抓取 7 月份的前 10 页,它将下一个按钮的上一个兄弟的页码转换为 int 并单击下一个 number_of_pages - 1 但是在到达第 10 页后它会停止。
网址 - https://planning.adur-worthing.gov.uk/online-applications/search.do?action=monthlyList
谁能帮我让它刮掉所有的页面?
def pagination( driver ):
data = []
last_element = driver.find_element_by_xpath('//a[ contains( concat( " ", normalize-space( @class ), " "), " next ") ]/preceding-sibling::a[1]')
if last_element is None:
number_of_pages = 1
else:
number_of_pages = int( last_element.text )
# data = [ getData( driver ) ]
data.extend(getData(driver))
for i in range(number_of_pages - 1):
driver.find_element_by_xpath('//a[ contains( concat( " ", normalize-space( @class ), " "), " next ") ]').click()
data.extend( getData( driver ) )
time.sleep(1)
return data
【问题讨论】:
-
你能在 for 循环之前打印 number_of_pages 吗?我怀疑因为您将最后一个元素的文本转换为 int,它只显示 10(即使有更多页面)
-
我刚刚测试了你的权利,它只会把 10 变成 int 它不会在其他页面上继续
-
根据您给定的链接 [URL - planning.adur-worthing.gov.uk/online-applications/… 。我只看到 10 页。
-
如果您按第 10 页,您是否正在检查 7 月,应该会出现更多内容
标签: python selenium selenium-webdriver