python - 如何使用xpath点击下一页
问题描述
from selenium import webdriver
from bs4 import BeautifulSoup as bs
import time
url = 'http://dciindia.gov.in/DentistsSearch.aspx?Reg_Type=D&RegUnder=0&IDRId=&IDRName=&CourseId=0&RegDate=0&CouncilId='
driver = webdriver.Chrome('C:\chromedriver.exe')
driver.get(url)
driver.maximize_window()
soup = bs(driver.page_source, 'html.parser')
table = soup.find('table',{'id':'gvSearchDentistlist'})
next_page = True
while next_page == True:
soup = bs(driver.page_source, 'html.parser')
table = soup.find('table',{'id':'gvSearchDentistlist'})
try:
rows = table.find_all('tr')
for row in rows:
if len(row.find_all('td')) == 6:
data = row.find_all('td')
name = data[1].text.strip()
print("NAME:"+name)
root_url = data[5].input['onclick'].split(",")[4]
link ='http://dciindia.gov.in/'+root_url
print("LINK:"+link)
except:
pass
try:
driver.find_element_by_xpath('//*[@id="gvSearchDentistlist"]/tbody/tr[52]/td/table/tbody/tr/td[1]').click()
time.sleep(1)
except:
print ('No more pages')
next_page=False
driver.close()
我无法点击下一页。我不知道最后一页,也没有“下一步”按钮可以点击,页面被指定为 1,2,3.. 等等。
解决方案
发现页面记录了总数,
你只需要一些数学知识。然后获取总页码。
你可以用这种方式调整有没有下一页?
推荐阅读
- ios - CSS - 精确移动纵横比的条件
- python - Python-语法错误“if语句”
- php - 这个 laravel 路线中使用了什么概念
- ios - 我无法理解结果为什么要添加斜线?如何删除它?
- webpack - 如何在 webpack 中导入角度?
- android - 在当前主题中找不到样式“bottomNavigationStyle”
- javascript - 如何在 XMLHttpRequested 字符串上使用 getElementByClassName?
- android - 使用 RetainingDataSourceSupplier 播放动画图像
- cmake - 如何仅使用静态库构建 llvm 工具
- php - JWT 中的注销不起作用