我正在嘗試無限時間單擊加載更多按鈕,直到加載所有產品。但是我的加載更多按鈕不起作用。這是我的代碼:
url = 'https://www.pursemall.ru/vuitton/damier-azur'
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(url)
try:
for i in range(1000):
load_more_button = driver.find_element_by_xpath("//span[text()='Load More Products']")
load_more_button.click()
except:
pass
print("task load more button completed")
為什么我的加載更多按鈕不起作用?我在哪里做錯了?
uj5u.com熱心網友回復:
您可以做的是以下內容。回圈內的每個呼叫都將獲取一組產品。您可以抓取每個回應并收集資料。
在瀏覽器中執行 F12 -> Network -> XHR 并查看瀏覽器如何在每次點擊加載更多產品時執行 HTTP 呼叫
import requests
for page in range(1,4):
url = f'https://www.pursemall.ru/vuitton/damier-azur?page={page}'
print(url)
r = requests.get(url)
print(r.status_code)
uj5u.com熱心網友回復:
我不是 100% 確定為什么您的原始代碼不起作用,但我能夠通過復制按鈕的完整 XPATH 而不是上面代碼中的內容來使其作業。
我還使用WebDriverWait和sleep()等待幾秒鐘,直到每次單擊后加載按鈕,因為這對于網路抓取工具來說是一種很好的做法。也許問題是兩者的結合:)
url = 'https://www.pursemall.ru/vuitton/damier-azur'
driver = webdriver.Chrome(PATH) # PATH is where you have chromedriver stored on your machine
driver.maximize_window()
driver.get(url)
try:
for i in range(1000):
load_more_button = WebDriverWait(driver, 10).until(ec.element_to_be_clickable(
(By.XPATH, '/html/body/div[1]/div/div[3]/div[3]/span/a/span')))
sleep(3)
load_more_button.click()
except:
pass
print("task load more button completed")
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/312288.html
標籤:Python 蟒蛇-3.x python-2.7 硒 硒网络驱动程序
上一篇:如何加快最近地理點的搜索?
