我想通过单击从多个网页中检索信息(参见图1和2)。问题是a)没有下一个按钮,并且b)即使页面链接包含一个用于计数的数字,它也不会对手动更改编号做出反应(即不加载下一页)。这使任务变得棘手。
有人可以帮助解决此问题吗?
链接的结构如下所示(无功能页面) https://sample.io/address/ID#pageSize=100
更新:在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)
答案 0 :(得分:0)
这可能需要在到达最后几页时稍作修改,但是我建议使用XPath在当前选定的li
旁边找到li
,然后单击a
里面的标签。
//li[contains(@class, "page-item") and contains(@class,"active")]/following-sibling::li/a