使用Python Selenium Chrome驱动程序点击Zomato上的元素

问题描述:

我想收集所有来自Zomato的评论提交时间。不是来自“热门”选项卡的选项,而是来自“所有评论”选项卡的选项。使用Python Selenium Chrome驱动程序点击Zomato上的元素

对于我来说,我必须点击“所有评论”选项卡,但我很难做到这一点,我的代码不断从“热门”标签打印出来。

输出:

  • 25天以前
  • 一个月前
  • 一个月前
  • 2个月前
  • 2个月前
  • 2个月前

预计O本安输出:

  • 昨天
  • 3天前
  • 3天前
  • 12天以前
  • 13天前

注:输出显示从当天的代码的结果这个问题已发布。

"Review Tabs"

from selenium import webdriver 
import os 

chromeDriver = "....\\chromedriver" 
URL = "https://www.zomato.com/cebu/the-pyramid-lahug-cebu-city" 
os.environ["webdriver.chrome.driver"] = chromeDriver 
driver = webdriver.Chrome(chromeDriver) 
driver.get(URL) 

driver.find_elements_by_xpath("//a[@data-sort='reviews-dd']")[0].click() 

timeList = driver.find_elements_by_tag_name('time') 
for time in timeList: 
    print(time.text) 

driver.quit() 
+2

你应该发布一个最简单的例子,可以很容易地被每个人复制。这有助于您快速了解您的问题。 – Heyji

尝试这段代码可能是它的工作。

from selenium import webdriver 
from selenium.common.exceptions import TimeoutException 
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.by import By 
from selenium.webdriver.common.keys import Keys 
import time 

browser=webdriver.Chrome() 
browser.maximize_window() 
browser.get("https://www.zomato.com/cebu/the-pyramid-lahug-cebu-city") 
delay=15 
#browser.execute_script("window.scrollTo(0,document.body.scrollHeight/2)") 
time.sleep(2) 

element = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.XPATH, ".//*[@id='selectors']/a[2]"))) 
element.click() 
element = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".item.default-section-title.everyone.empty"))) 
element.click() 
print "click done" 
time= WebDriverWait(browser, delay).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".grey-text>time"))) 
for i in time: 
    print i.text 
browser.quit() 
+0

您输出的原因是您的页面没有滚动。 – Sachhya