Beautifulsoup解析硒元素

时间:2019-10-30 02:05:57

标签: python html selenium beautifulsoup element

我使用soup = BeautifulSoup(driver.page_source)在BeautifulSoup中解析Selenium中的整个页面。

但是如何在BeautifulSoup中解析硒的一个元素。

下面的代码将抛出

  

TypeError:“ FirefoxWebElement”类型的对象没有len()

element = driver.find_element_by_id(id_name)
soup = BeautifulSoup(element)

1 个答案:

答案 0 :(得分:2)

我不知道硒是否可以直接使用,但我设法找到了解决方法

element_html = f"<{element.tag_name}>{element.get_attribute('innerHTML')}</{element.tag_name}>"

例如,如果您只想获取文本,则可以将innerHTML替换为innerTEXT

<li>Hi <span> man </span> </li>

获取innerHTML会返回内部的所有内容,但是innerTEXT不会,请尝试看看。

现在创建您的Soup对象

soup = BeautifulSoup(element_html)
print(soup.WHATEVER)

使用上述技术,只需创建方法parseElement(webElement)并在需要解析元素时使用它即可。

顺便说一句,我只使用lxml,而当我忘记键入lxml时,脚本不起作用