我正在尝试从https://in.puma.com/in/en/mens/mens-new-arrivals中抓取数据。单击显示全部按钮时,将加载完整的数据。
我使用selenium生成点击并加载页面的其余部分,但是,我得到了一个错误
"TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: "
请参阅下面的代码。
from selenium.webdriver.support import expected_conditions as EC
import time
from lxml import etree as et
chrome_driver_path = "driver/chromedriver"
url = 'https://in.puma.com/in/en/mens/mens-new-arrivals'
browser = webdriver.Chrome(ChromeDriverManager().install())
browser.get(url)
x_path_to_load_more = '//*[@data-component-id="a_tspn9cqoeth"]'
browser.execute_script("window.scrollTo(0,document.body.scrollHeight)")
button_locate = wait(browser,10).until(EC.presence_of_element_located((By.XPATH,x_path_to_load_more)))
button_locate.click()
2条答案
按热度按时间o2gm4chl1#
xpath不正确,请尝试
要验证xpath检查页面的有效性,请使用Command + F或Control + F打开查找栏,然后粘贴您的xpath
b09cbbtk2#
@data-component-id
似乎是动态的。这意味着每次打开该页面时,该值都是不同的(而不是"a_tspn9cqoeth"
)。请尝试使用其他属性值进行搜索:或
此外,最好使用
EC.element_to_be_clickable
,而不是EC.presence_of_element_located
更新
由于点击按钮可能会被Cookie页脚拦截,请尝试在点击前向下滚动页面: