使用BeautifulSoup提取链接失败:返回None值问题求助
问题解决:bs4提取链接返回None的原因及修正
你的问题出在两个关键细节上:
- 遍历的对象是
<li>元素,而非<li>内部的<a>标签,<li>本身不存在href属性,因此调用get()会返回None - 你写的属性名
" href"多了一个空格,正确的属性名应为"href"
修正后的代码
直接在列表推导式里先定位每个<li>中的<a>标签,再提取href:
links_h = [li.find("a").get("href") for li in house]
如果要避免因个别<li>中无<a>标签导致的报错,可以添加判断逻辑:
links_h = [li.find("a").get("href") for li in house if li.find("a")]
逻辑说明
你的house变量存储的是<li>元素列表,每个元素的结构为<li><a href="xxx">...</a></li>,必须先定位到<a>标签,才能提取它的href属性,同时要注意属性名的准确性,不能带多余空格。
内容的提问来源于stack exchange,提问作者sadie_b
相关产品推荐
相关产品推荐

