如何使用BeautifulSoup提取无class、id、name属性的div元素
BeautifulSoup 定位自定义属性div实现方案
你的目标<div grea>虽无class、id、name属性,但携带了自定义属性grea,直接用BeautifulSoup的属性匹配规则即可精准定位,提取目标文本的代码如下:
from bs4 import BeautifulSoup # html_str 为你爬取到的完整网页源码字符串 soup = BeautifulSoup(html_str, 'html.parser') # html.parser为Python内置解析器,无需额外安装依赖 # 匹配所有带有grea属性的div元素 target_div = soup.find('div', attrs={'grea': True}) # 提取文本并去除首尾空白字符 book_wishes_text = target_div.get_text(strip=True) print(book_wishes_text) # 输出结果为:Book Wishes
更稳定的可选方案
如果页面存在多个带grea属性的div,可结合父元素特征缩小匹配范围,进一步提升定位准确性:
# 先定位父级class为main的div main_container = soup.find('div', class_='main') # 再在父级范围内查找带grea属性的div target_div = main_container.find('div', attrs={'grea': True}) book_wishes_text = target_div.h1.get_text(strip=True)
原理说明
attrs={'grea': True}的匹配规则为:只要元素携带grea属性即可匹配,不限制属性的具体取值,完美适配你当前场景中属性只有名称没有值的情况。
内容的提问来源于stack exchange,提问作者Jeffrey wang
相关产品推荐
相关产品推荐

