我在使用Beautiful Soup 4从许多存储在span标签中的html文件中提取内容时遇到了麻烦
我已经使用了汤流,并找到(“dl”)将html减少到带有“dl”标记的重复项目,然后找到所有的 Span .
我的问题是如何从每个 Span 中提取正确的值并存储在变量中,以及处理的顺序
<span class="iconYes">Public</span>
<span class="iconNo">Private</span>
所以我知道他们提供的服务
My Python 3 code
WebText=BeautifulSoup(open(fileToProcess),"html.parser",parse_only=DentistStrainer)
datalist = WebText.find("dl")
for listitems in datalist:
spans = datalist.find_all('span')
for span in spans:
print(span)
Sample Output
<span id="Content_Result_lblDentistName">Dr First Surname</span>
<span class="lblAddress" id="Content_Result_lblAddress"><strong>Address</strong>: Dental Centre, Street, Town</span>
<span class="lblAddress" id="Content_Result_lblPhone"><strong>Phone</strong>: 123-1234567</span>
<span class="lblAddress" id="Content_Result_lblFax"><strong>Fax</strong>: 123-3456789</span>
<span class="lblAddress" id="Content_Result_lblEmail">someone@somewhere.tld</span>
<span class="lblAddress" id="Content_Result_lblWebsiteUrl">www.somewhere.tld</span>
<span><strong>Services</strong>: </span>
<span class="iconYes">Private</span>
<span class="iconYes">Public</span>
<span class="iconNo">Credit Card</span>
我没有成功尝试使用提取值
if span.contains("lblDentistName"):
DentistName = span.text()
print("Dentist ",DentistName)`
任何Beautifulsoup用户都可以帮助我吗?
1 回答
使用CSS selectors:
$=
选择以指定文本结尾的属性 .CSS选择器也可用于查找所有
class="icon.."
span元素;它们按照它们在树中出现的顺序匹配:^=
与开头的类值匹配(请注意,如果span有多个类,则这可能不起作用) .