Python Selenium - 点击没有下一个按钮的页面

问题描述 投票:0回答:1

我想通过点击它们从多个网页中检索信息(见图1和图2)。问题是a)没有下一个按钮和b)即使页面链接包含一个用于计数的数字,它也不会对手动更改编号做出反应(即不加载下一页)。这使得任务变得棘手。

任何人都可以帮忙解决这个问题吗?

这里是链接的结构(没有正常运行的页面)https://sample.io/address/ID#pageSize=100

pagination structure

Source code

更新:在Robbie W的帮助下工作..我使用的代码是:

options.add_argument('windows-size = 1200 x 800')
browser = webdriver.Chrome(chrome_options = options)



browser.get('URL')
page_soup_1 = soup(browser.page_source, "lxml")
items_1 = page_soup_1.find_all("li", {"class": "page-item" })

LenofPage = pd.DataFrame()
count = pd.DataFrame()

for item in items_1 :
    string = str(item)
    Num = string[string.find('page-item')+23:string.find('\/li')-8]
    LenofPage = LenofPage.append({'LenofPage': Num}, ignore_index = True)

Max_pagenum = LenofPage.max()
Max_pagenum_1 = int(Max_pagenum)


count = 1
#items_1 = page_soup.find_all("li", {"class": "page-item active" 
}).next_sibling

while count <  Max_pagenum_1:
    link = browser.find_element_by_xpath('//li[contains(@class, "page-item") 
and contains(@class,"active")]/following-sibling::li/a')
    link.click()
    count = count + 1
    time.sleep(3)

print(count)
python selenium web-scraping
1个回答
0
投票

当你到达最后几页时,这可能需要稍微修改,但我建议使用XPath找到当前选中的li旁边的li,然后单击其中的a标签。

//li[contains(@class, "page-item") and contains(@class,"active")]/following-sibling::li/a
© www.soinside.com 2019 - 2024. All rights reserved.