Web scraping 如何将web元素传递到BeautifulGroup

Web scraping 如何将web元素传递到BeautifulGroup,web-scraping,beautifulsoup,request,Web Scraping,Beautifulsoup,Request,我得到了这样的web元素 elements = browser.find_elements_by_xpath("//*[contains(text(), 'Open Until')]") 现在我必须将这个元素传递给soup,以找到它的下一个&上一个兄弟。我正在尝试这个 soup = BeautifulSoup(elements,'html.parser') 我应该写什么 ??? soup = BeautifulSoup(elements.source,'html.parser') ???

我得到了这样的web元素

elements = browser.find_elements_by_xpath("//*[contains(text(), 'Open Until')]")
现在我必须将这个元素传递给soup,以找到它的下一个&上一个兄弟。我正在尝试这个

soup = BeautifulSoup(elements,'html.parser')
我应该写什么

??? soup = BeautifulSoup(elements.source,'html.parser') ???

请建议

这应该是一个评论,但我无法添加一个。 因此,它应该是:

soup=BeautifulSoup(elements.parent.page_源代码'html.parser')

或 直接从浏览器创建汤:

soup=BeautifulSoup(browser.page_源代码'html.parser')

然后搜索并获取汤中的元素
在或中没有关于这方面的信息。这应该是一条评论,但我无法添加一条。 因此,它应该是:

soup=BeautifulSoup(elements.parent.page_源代码'html.parser')

或 直接从浏览器创建汤:

soup=BeautifulSoup(browser.page_源代码'html.parser')

然后搜索并获取汤中的元素
在或

中没有关于这方面的信息,您不需要混合,也不能混合,例如,selenium还有获取上一个和下一个兄弟姐妹的方法

from selenium import webdriver
driver = webdriver.Chrome()

driver.get('https://140f670e-5774-43b5-a1a5-c993f66fa51d.htmlpasta.com/')

element = driver.find_element_by_xpath("//*[contains(text(), 'Open Until')]")
prevSibling = element.find_element_by_xpath('.//preceding-sibling::*')
nextSibling = element.find_element_by_xpath('.//following-sibling::*')

print(prevSibling.tag_name + ': ' + prevSibling.text)
print(element.tag_name + ': ' + element.text)
print(nextSibling.tag_name + ': ' + nextSibling.text)
driver.close()

您不需要混合,也不能混合,例如,selenium还有获取上一个和下一个兄弟姐妹的方法

from selenium import webdriver
driver = webdriver.Chrome()

driver.get('https://140f670e-5774-43b5-a1a5-c993f66fa51d.htmlpasta.com/')

element = driver.find_element_by_xpath("//*[contains(text(), 'Open Until')]")
prevSibling = element.find_element_by_xpath('.//preceding-sibling::*')
nextSibling = element.find_element_by_xpath('.//following-sibling::*')

print(prevSibling.tag_name + ': ' + prevSibling.text)
print(element.tag_name + ': ' + element.text)
print(nextSibling.tag_name + ': ' + nextSibling.text)
driver.close()

selenium返回的元素的形式为
selenium WebElements
,而不是
html
。 需要将
WebElements
转换为HTML,以便
BeautifulSoup
能够对其进行解析

#网络元素列表
elements=browser。通过xpath(“/*[contains(text(),'Open Until')]”查找元素
#迭代找到的所有元素
对于元素中的WebElement:
elementHTML=WebElement.get_属性('outerHTML')#给出元素的确切HTML内容
elementSoup=beautifulsou(elementHTML,'html.parser')
打印(元素汤)

selenium返回的元素的形式为
selenium WebElements
,而不是
html
。 需要将
WebElements
转换为HTML,以便
BeautifulSoup
能够对其进行解析

#网络元素列表
elements=browser。通过xpath(“/*[contains(text(),'Open Until')]”查找元素
#迭代找到的所有元素
对于元素中的WebElement:
elementHTML=WebElement.get_属性('outerHTML')#给出元素的确切HTML内容
elementSoup=beautifulsou(elementHTML,'html.parser')
打印(元素汤)

我不明白你的答案。你能澄清一下吗。我有两个元素在“Open-Until”元素的上方和下方。我应该在x_Path.previsibling=element.find_element_by_xpath('.//前面的兄弟姐妹::p')nextSibling=element.find_element_by_xpath('.//后面的兄弟姐妹::p')中具体写什么我是用这种方式写的,但找不到。发布你的html代码片段我不明白你的答案。你能澄清一下吗。我有两个元素在“Open-Until”元素的上方和下方。我应该在x_Path.previsibling=element.find_element_by_xpath('.//前面的兄弟姐妹::p')nextSibling=element.find_element_by_xpath('.//后面的兄弟姐妹::p')中具体写什么我是用这种方式写的,但找不到它。发布你的html代码片段我正在完成父元素,而我需要它的上一个和下一个同级。你能告诉我具体的解决方案吗?我正在完成父元素,而我需要它的前一个和下一个同级。你能告诉我具体的解决办法吗。