python - 如何从网站上抓取没有类或 id 的元素
问题描述
我正在做一个硒项目。在项目中,我试图从网站上抓取特定元素。该元素没有与之关联的类或 ID。所以我有点纠结于如何提取这些细节。
这是网站
在网站中,如果您查看规范的 HTML 标记,则有一个div
with 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
页面上的按钮以显示带有硒的规格区域。万一你想知道,那不是问题。
解决方案
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