如何使用BeautifulSoup提取HTML元素内title属性的对应值
问题原因
你之前的代码没有返回结果,是因为选择器逻辑完全匹配错了目标:
soup.select('.title')用于匹配class属性为title的元素,你的HTML结构里没有这类元素,所以无结果soup.find_all('title')用于匹配HTML顶层的<title>文档标题标签,你要提取的是普通元素的title自定义属性,和这个标签完全无关
解决方案
你完全可以在第一段代码的基础上修改实现需求,你拿到的d是<td>标签对象,title属性存储在td内部的img子元素上,只要从d里筛选出带title属性的img元素,再提取属性即可,修改后的代码如下:
for i in data.data.values[0:10]: soup = BeautifulSoup(i) names = soup.find_all('td', class_='zentriert') for d in names: # 筛选当前td下所有带有title属性的img标签 imgs = d.find_all('img', attrs={"title": True}) for img in imgs: # 提取title属性值,用get方法避免不存在属性时报错 print(img.get('title', ''))
运行上述代码就会输出你预期的结果:
England Morocco Spain
内容的提问来源于stack exchange,提问作者me.limes
相关产品推荐
相关产品推荐

