如何用BeautifulSoup从指定父div获取含data-did属性的子div
解决方法
你可以在循环里借助BeautifulSoup的find()方法,通过属性选择器定位带有data-did属性的子div,具体代码修改如下:
driver = webdriver.Chrome() driver.get("https://www.justdial.com/Mumbai/General-Physician-Doctors/nct-10892680") html = driver.page_source soup = BeautifulSoup(html, "html.parser") ds= soup.find_all("div", class_="resultbox_textbox") for d in ds: # 获取带有data-did属性的子div target_div = d.find("div", attrs={"data-did": True}) if target_div: # 获取该div的文本内容 div_text = target_div.get_text(strip=True) # 获取data-did属性的值 did_value = target_div["data-did"] # 此处添加你的后续处理逻辑 print(did_value, div_text)
补充说明
find("div", attrs={"data-did": True})会定位当前父div下第一个带有data-did属性的子div;如果需要获取所有符合条件的子div,替换为find_all()即可。- 加入
if target_div:判断是为了避免部分父div不存在目标子div时触发异常。
内容的提问来源于stack exchange,提问作者juan
相关产品推荐
相关产品推荐

