簡體   English   中英

selenium webdriver:我想點擊下一頁直到最后一頁

[英]selenium webdriver: I want to click on the next page till last page

from selenium import webdriver
from bs4 import BeautifulSoup as bs
import time

url = 'https://curecity.in/vendor-list.php?category=Doctor&filters_location=Jaipur&filters%5Bsubareas_global%5D=&filters_speciality='

driver = webdriver.Chrome('C:\chromedriver.exe')
driver.get(url)
driver.maximize_window()


next_page_number=1
next_page = True
while next_page == True:
     soup = bs(driver.page_source, 'html.parser')
     for link in soup.find_all('div',class_='col-md-9 feature-info'):
        link1 = link.find('a')
        print(link1['href'])
     try:
        driver.find_element_by_link_text(">").click()
        next_page_number+=1
        time.sleep(1)
    except:
        print ('No more pages')
        next_page=False

driver.close()

我想點擊下一頁,但上面寫的代碼是點擊替代頁面..我想從第一頁點擊到最后一頁。

我在這個頁面上發現了兩個問題。

1)它加載頁面非常慢,所以我不得不在獲取數據和click()按鈕之前睡 10 秒。

2) 按鈕>與我期望的不同 - 它會跳轉 3 頁(即使我在瀏覽器中手動單擊它),所以我搜索帶有下一頁編號的按鈕並單擊它。

 driver.find_element_by_xpath('//a[@data-page="{}"]'.format(next_page_number)).click()

完整代碼。 即使沒有BeautifulSoup

from selenium import webdriver
#from bs4 import BeautifulSoup as bs
import time

url = 'https://curecity.in/vendor-list.php?category=Doctor&filters_location=Jaipur&filters%5Bsubareas_global%5D=&filters_speciality='

driver = webdriver.Chrome('C:\chromedriver.exe')
#driver = webdriver.Firefox()
driver.maximize_window()

driver.get(url)
next_page_number = 1

while True:

    print('page:', next_page_number)
    time.sleep(10)

    #soup = bs(driver.page_source, 'html.parser')
    #for link in soup.find_all('div',class_='col-md-9 feature-info'):
    #    link1 = link.find('a')
    #    print(link1['href'])

    for link in driver.find_elements_by_xpath('//div[@class="col-md-2 feature-icon"]/a'):
        print(link.get_attribute('href'))

    try:
        next_page_number += 1
        driver.find_element_by_xpath('//a[@data-page="{}"]'.format(next_page_number)).click()
    except:
        print('No more pages')
        break # exit loop

#driver.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM