【问题标题】:Getting XPath from Value or Text [closed]从值或文本获取 XPath [关闭]
【发布时间】:2021-05-24 08:36:53
【问题描述】:

我是初学者,对抓取了解不多。

我的问题是,我们能否使用任何库/工具从 HTML 元素的文本或值中获取其 XPath 通常,该过程是反向完成的,效果很好。 我使用过 Scrapy 和 Selenium,但不限于任何特定的库/框架

例如来自:

<html>
  <body>
    <div class="class1">text</div>
  </body>
</html>
// above div can be any element which may not even have a class

我们能否得到如下输出:

//div[@class='class1']

提前谢谢你。

【问题讨论】:

    标签: selenium web-scraping xpath scrapy selector


    【解决方案1】:

    也许您可以构建自己的:

    ele =  driver.find_element(By.XPATH, "//div[text()='text']")
    class_attr = ele.get_attribute('class')
    tag_nam = ele.tag_name
    construct_xpath = str("//") + tag_nam + str("[@class='") + class_attr + " '] " 
    

    【讨论】:

    • 但是引用元素 "//div[text()='text']" 可能是也可能不是 div。它可能有也可能没有类,例如可以是 中的第三个 。
    • 如果你想创建自己的xpath,你需要知道web元素
    • 我正在尝试动态获取它们以用于机器学习。对于 1000 多个网站,我认为不可能知道所有网站中所有元素的 XPath
    • @HamzaTasneem :就此而言,您可以将它们隔离为 div 列表或跨度列表等......
    • 为什么要编写一个定位器来定位一个元素,然后为同一个元素构建另一个定位器? OP 正在询问如何快速找到给定元素的定位器,而不是从现有定位器生成新定位器。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签