【发布时间】:2019-02-14 13:44:57
【问题描述】:
我想为我的爬虫找到正确的XPath。
我正在尝试做的事情:刮掉玩家的市场价值。
问题:当将鼠标移到路径或俱乐部图像上时,市场价值仅显示在 HTML 中。我不太清楚。
代码:
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
url = 'https://www.transfermarkt.de/manuel-neuer/marktwertverlauf/spieler/17259'
driver = webdriver.Chrome()
driver.implicitly_wait(30)
driver.get(url)
time.sleep(5)
actions = ActionChains(driver)
actions.move_to_element_by_xpath('//*[@id="highcharts-0"]/div/span')
actions.move_to_element_by_xpath('//*[@id="highcharts-0"]/svg/g[5]/g[1]/path[1]')
actions.move_to_element_by_xpath('//*[@id="highcharts-0"]/svg/g[5]/g[2]/image[33]')
actions.perform()
date = driver.find_element_by_xpath('//*[@id="highcharts-0"]/div/span/b[1]').text
value = driver.find_element_by_xpath('//*[@id="highcharts-0"]/div/span/b[2]').text
club = driver.find_element_by_xpath('//*[@id="highcharts-0"]/div/span/b[3]').text
age = driver.find_element_by_xpath('//*[@id="highcharts-0"]/div/span/b[4]').text
print(date, value, club, age)
好的,所以如果我运行此代码,它会返回错误,因为日期、值、俱乐部和年龄仅在将鼠标悬停在我猜测的路径上时才会显示。
如果我手动将鼠标移到svg 中的俱乐部图像上,它会返回正确的数据。
那么,我如何在此处为move_to_element_by_xpath 找到正确的xpath?
我尝试了很多组合。
【问题讨论】:
-
好吧,我的计划是把它们都刮掉。稍后我将构建循环。我现在的问题是我什至不能得到一个回报。
-
啊....谢谢..回答了我的问题
标签: python html python-3.x xpath web-scraping