当前位置: 首页 > 知识库问答 >
问题:

在Python中通过XPath查找元素

淳于健
2023-03-14

我想从网站上提取一些赔率:

https://www.oddsportal.com/soccer/europe/champions-league-2015-2016/real-madrid-manchester-city-dhjzn1pn/#1x2;2

> from selenium import webdriver from bs4 import BeautifulSoup
>
> driver = webdriver.Firefox() url =
> 'https://www.oddsportal.com/soccer/europe/champions-league-2015-2016/real-madrid-manchester-city-dhJZn1pn/#1X2;2'
> driver.get(url) print(driver.title)
>
> element =
> driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[6]/div[1]/div/div[1]/div[2]/div[1]/div[7]/div[1]/table/tbody/tr[2]/td[1]/div/a[2]")
>
> print(element.text)
>
> driver.close()

共有1个答案

宗政深
2023-03-14

您的XPath表达式不正确。

您的XPath表达式如下:“/html/body/div[1]/div/div[2]/div[6]/div[1]/div[2]/div[1]/div[7]/div[1]/table/tbody/tr[2]/td[1]/div/a[2]”

您需要这样:/html/body/div[1]/div/div[2]/div[6]/div[1]/div/div[1]/div[2]/div[8]/div[1]/table/tbody/tr[1]/td[2]/div

以下是完整的工作代码。我成功地用它打破常规了。

from selenium import webdriver
from bs4 import BeautifulSoup

driver = webdriver.Firefox()
url ='https://www.oddsportal.com/soccer/europe/champions-league-2015-2016/real-madrid-manchester-city-dhJZn1pn/#1X2;2'
driver.get(url)
print(driver.title)
element = driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[6]/div[1]/div/div[1]/div[2]/div[1]/div[8]/div[1]/table/tbody/tr[1]/td[2]/div")
print(element.text)
driver.close()
 类似资料:
  • 请帮助我,我正在尝试选择一个图片,这是一个链接(一个网站上的培训师) 这是我的代码:

  • 我是DOM查询的新手,我想知道是否可以通过Xpath直接查询DOM元素,类似于下面提到的代码? 谢谢

  • 我想使用selenium单击一个按钮,并在站点的下拉日期选择器中选择该按钮。 我希望单击的按钮以黄色突出显示 http://covid.gov.pk/stats/ict 我正在使用以下xpath。 //*[@id=“datepicker-1361-7562-title”]/strong 这是我正在使用的代码 问题是,我可以点击下拉菜单上的其他元素,但不能点击这个按钮。 运行代码时遇到的错误。 ch

  • 我有这一页: 我想按节群链接: 下面是y在以下内容中找到的解释:http://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webelement.webelement.find_element_by_xpath

  • 问题内容: 给定如下所示的XML: 如何使用ElementTree及其对XPath的支持将元素与内容A匹配?谢谢 问题答案: AFAIK ElementTree不支持XPath。它改变了吗? 无论如何,您可以使用lxml和以下XPath表达式: 结果将是:

  • 问题内容: 如果我搜索单个字符串,则效果很好: 但是我可以在下面的示例中有一个 or 语句吗? 问题答案: 在两个函数调用之间说 或使用函数使xpath不区分大小写