首页 > 解决方案 > 如何从网站上抓取没有类或 id 的元素

问题描述

我正在做一个硒项目。在项目中,我试图从网站上抓取特定元素。该元素没有与之关联的类或 ID。所以我有点纠结于如何提取这些细节。

这是网站

在网站中,如果您查看规范的 HTML 标记,则有一个divwith contents <b>Form</b>: Liquid。我想提取“液体”。

这是我到目前为止的代码

def extract():
            
    form_element = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//b[text()='Form']/")))
    form_text = form_element.text
    return form_text

这导致了一个TimeOutException. 我不确定我做错了什么。

PS:我可以单击show more页面上的按钮以显示带有硒的规格区域。万一你想知道,那不是问题。

标签: pythonseleniumweb-scraping

解决方案


div使用此 xpath 从您想要的元素中获取父级:

//b[text()='Form:']//parent::div

并且要获取文本,您似乎必须使用.get_attribute('innerHTML')而不是.text

试试下面的代码:

def extract():
    form_element = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//b[text()='Form:']//parent::div")))
    form_text = form_element.get_attribute('innerHTML').split("</b>",1)[1]
    return form_text

推荐阅读