当前位置: 首页 > 面试题库 >

如何使用selenium获取特定元素的html源?

郝峰
2023-03-14
问题内容

我正在查看的页面包含:

<div id='1'> <p> text 1 <h1> text 2 </h1> text 3 <p> text 4 </p> </p> </div>

我想获取div中的所有文本,除了中的文本<h>。(我想获得“文本1”,“文本3”和“文本4”)。可能有几个<h>元素,或者根本没有。而且可能有一些<p>元素,甚至一个元素都在另一个元素之中,或者根本没有。

我想通过获取div的所有html源并使用正则表达式删除<h>元素来做到这一点。但是selenium.get_text不会返回html,而只是返回文本(全部!)。

我知道我可以使用selenium.get_html_source正则表达式来查找所需的元素,但这看起来很浪费,因为selenium知道如何找到该元素。

有谁有更好的解决方案?谢谢 :)


问题答案:

以下代码将为您提供div元素中的HTML:

sel = selenium('localhost', 4444, browser, my_url)
html = sel.get_eval("this.browserbot.getCurrentWindow().document.getElementById('1').innerHTML")

那么您可以使用BeautifulSoup对其进行解析并提取您真正想要的内容。

希望对您有所帮助



 类似资料:
  • 根据以下示例HTML查找元素下面的元素:

  • 我有一个html如下所示 如您所见,在父div下有四个子div,它包含类;第三个子div包含一个额外的类。我想在包含类的子项之前选择所有子项。注任何子级都可以包含类,并且在任何情况下,我都希望所有子级位于它之前。 这就是我所做的 但在本例中它也选择最后一个子项。在使用JavaScript选择类之前,我如何确保只有子类? 我在stackoverflow中发现了一个类似的问题:在element wit

  • 问题内容: 使用JavaScript在具有特定CSS类的html文档中获取所有元素的数组的最佳方法是什么? 目前没有像jQuery这样的JavaScript框架现在允许在这里使用,我可以循环所有元素并亲自检查它们。我希望有一些优雅的东西。 问题答案: 它的值得指出的对于原生浏览器支持已经得到了_很多_更好。但是,如果您必须支持旧版浏览器,那么… 使用已经写好的一个。大多数主要的JS库都以某种形式包

  • 我能够在等式(1)中一个接一个地获得所有细节。 在示例中: 在HTML表格中,当我做等式(0)时,我得到GK,NS,PS。当我做等式(1)时,我得到99 88 55。 有没有一种方法可以让我使用JSOUP作为 现在我得到了两个不同的字符串数组。

  • 我需要获取值,当单击具有但不起作用的特定链接时。。。 我的尝试: 我也试过 有什么想法吗?