我使用soup = BeautifulSoup(driver.page_source)
在BeautifulSoup中解析Selenium中的整个页面。
但是如何在BeautifulSoup中解析硒的一个元素。
下面的代码将抛出
TypeError:“ FirefoxWebElement”类型的对象没有len()
element = driver.find_element_by_id(id_name)
soup = BeautifulSoup(element)
答案 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时,脚本不起作用