【问题标题】:find_element_by_xpath doesn't fit and I don't know how to find itfind_element_by_xpath 不适合,我不知道如何找到它
【发布时间】:2020-04-13 15:57:10
【问题描述】:

我正在抓取一个基本上是搜索引擎的页面。事实是我只能通过 xpath 在那个代码中找到元素,例如:

我要指定h2

<div class="header">
<i id="print" data-nb="1609606440">
</i>
<h2>JOAO SAMPAIO DOS SANTOS</h2>
<ul> <li class="numeric">CPF: 35954825300</li>
<li class="numeric">Nasc.: 22/06/1950 (69 Anos)</li> </ul>
</div>

问题是页面可以根据结果改变它的结构,所以在某些情况下 xpath 可能不起作用。我怎么能这样做?

编辑: 我们将考虑“正常”的第一张图片,我想要突出显示的文本。第二个显示一个通知(突出显示)女巫更改了 xpath。我想在这两个案例上得到同样的结果

【问题讨论】:

  • 可以分享网址吗?
  • 不幸的是,它是我作为合作伙伴的一家公司的私人公司,需要用户和通行证:(
  • 那么如果没有看到 html 结构,或者可能是 getpost 请求,将很难提供帮助。元素中是否有任何一致的属性?你想指定h2是什么意思?您能否举例说明 2 个不同的搜索结果(即不同的 xpath)的外观?
  • 感谢您的帮助!我添加了一些屏幕截图,当然可以帮助您更好地理解
  • 所以在这两种情况下你想要什么?您对这些中的每一个的预期输出是什么? h2标签下的内容?

标签: python xpath web-scraping find


【解决方案1】:

两种情况下都可以使用 XPath:

//h2[preceding::*[1][name()="i" and contains(@id,"print")][@data-nb]]

我们在包含特定属性的 i 元素之后查找 h2 元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 2020-11-02
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多