【问题标题】:how to scrape age group of users from tripadvisor python如何从tripadvisor python中抓取年龄组的用户
【发布时间】:2018-10-09 04:07:23
【问题描述】:

我正在努力从 TripAdvisor 提取用户信息。

如果您查看评论,单击用户名或照片,它将显示更多信息,即年龄组、贡献、有用的投票和访问过的城市。

我想抓取访问过的年龄组和城市。请查看下面的图片以获取更多详细信息。

我可以点击它,但它只显示第一个用户的信息,它不会移动到第二个用户。我把它放到了for_loop中,但是没有用。

info = browser.find_element_by_class_name('info_text')
info.click()

有人有什么建议可以使用 python 抓取所有用户的信息吗? 感谢您的时间。

【问题讨论】:

  • 尝试循环,点击每个用户并获取详细信息。

标签: python selenium web-scraping


【解决方案1】:

正如@Murthi 建议的那样,尝试循环遍历它应该看起来像:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC 


data = []
my_xpath = '//div[@class="info_text"]'
wait = WebDriverWait(browser, 10)
wait.until(EC.presence_of_all_elements_located((By.XPATH, my_xpath)))
users_info = browser.find_elements_by_xpath(my_xpath)
for index, user in enumerate(users_info):
    user.click()
    inf = browser.find_elements_by_xpath('//*[@class="countsReviewEnhancementsItem"]')
    data.append(inf)

    try:
        users_info[index+1].click()
    except :
        pass

希望这会有所帮助!

【讨论】:

  • 感谢您的回答。我确实尝试过,但后来我收到了这个错误:元素
    在点 (111.66666412353516,584.3499755859375) 不可点击,因为另一个元素
    掩盖了它
  • 我注意到,如果我想点击第二个用户,那么我必须左键点击两次才能打开信息。我认为这就是它不起作用的原因......
  • 请指导我如何让它从第二个用户点击2次以获取数据,并为第一个用户点击一次。谢谢。
  • 请使用本站:tripadvisor.com.au/…
  • 我没有为你做所有的工作......但希望我能帮助我去工作......
猜你喜欢
相关资源
最近更新 更多
热门标签