【发布时间】:2021-01-15 00:25:49
【问题描述】:
我正在从 Wayfair 抓取客户评论(例如 https://www.wayfair.com/appliances/pdp/bissell-aeroswift-compact-bagless-vacuum-bse10083.html)。但是,第一页只列出了 3 条评论,我需要使用 Selenium 不断“点击”按钮“显示 10 条评论”。
按钮对应的html为:<button data-hb-id="pl_button" class="Button Button--alternate Button--large Button--plainText" type="button"><span class="Button-content"><span><span class="pl-LoadingButton-content is-entered" style="transition: opacity 500ms ease-in-out 0s;"><div class="pl-Box--display-flex" data-hb-id="pl-box">Show 10 More<span class="SeeMoreReviewsButton-reviewsText">&nbsp;Reviews</span><svg focusable="false" viewBox="0 0 28 28" class="pl-BaseIcon pl-BaseIcon--scalable" aria-hidden="true" data-hb-id="pl-icon"><path d="M14 19a.47.47 0 01-.35-.15l-7-7a.49.49 0 01.7-.7L14 17.79l6.65-6.64a.49.49 0 11.7.7l-7 7A.47.47 0 0114 19z"></path></svg></div></span></span></span></button>
我已经尝试过使用 find_element_by_xPath,但 xPath 在几次点击后保持变化:
element = browser.find_element_by_xpath('//*[@id="bd"]/div[2]/div[2]/div[1]/div/div/div/div/div/div[5]/div/div/button')
element.click()
变体xPath包括:
//*[@id="bd"]/div[2]/div[2]/div[1]/div/div/div/div/div/div[5]/div/div/button
//*[@id="bd"]/div[2]/div[2]/div[1]/div/div/div/div/div/div[5]/div[1]/div/button
//*[@id="bd"]/div[2]/div[2]/div[1]/div/div/div/div/div/div[4]/div/div/button
另一种查找元素的方式,比如按类和按css选择器也不好用。
有人知道我应该如何获取按钮元素并单击它吗?
非常感谢!
【问题讨论】:
标签: python selenium button web-scraping