BeautifulSoup爬取租房网站调用.text报NoneType属性错误求助
报错原因
find()方法在匹配不到对应节点时会返回None,你直接对返回结果调用.text属性,就会触发AttributeError: 'NoneType' object has no attribute 'text'报错。从你贴的日志也能看到,heating_type、double_glazed等多个字段也存在返回None的情况,只是你暂未对这些字段调用.text所以没有触发报错。
解决方案
你可以写一个通用的文本提取函数,统一处理空节点的情况,避免重复写判断逻辑:
# 先定义工具函数 def safe_get_text(element): return element.text.strip() if element is not None else "" for item in house_link_list: url = item page = requests.get(url) soup = BeautifulSoup(page.content, 'html.parser') result = soup.find_all('table', class_="tableproperty") for item in result: advert = item.find('td', attrs={'data-title': 'Advert'}) post_code = item.find('td', attrs={'data-title': 'Post code'}) house_area = item.find('td', attrs={'data-title': 'Area'}) landlord = item.find('td', attrs={'data-title': 'Landlord'}) property_type = item.find('td', attrs={'data-title': 'Property type'}) floor_level = item.find('td', attrs={'data-title': 'Floor level'}) opening_data = item.find('td', attrs={'data-title': 'Opening date'}) closing_date = item.find('td', attrs={'data-title': 'Closing date'}) bedrooms = item.find('td', attrs={'data-title': 'Bedrooms'}) heating_type = item.find('td', attrs={'data-title': 'Heating type'}) double_glazed = item.find('td', attrs={'data-title': 'Double glazed'}) garden = item.find('td', attrs={'data-title': 'Garden'}) pets = item.find('td', attrs={'data-title': 'Pet allowed'}) rent = item.find('td', attrs={'data-title': 'Rent'}) # 全部用工具函数提取文本 print(safe_get_text(advert)) print(safe_get_text(post_code)) print(safe_get_text(house_area)) print(safe_get_text(landlord)) print(safe_get_text(property_type)) print(safe_get_text(floor_level)) print(safe_get_text(opening_data)) print(safe_get_text(closing_date)) print(safe_get_text(bedrooms)) print(safe_get_text(heating_type)) print(safe_get_text(double_glazed)) print(safe_get_text(garden)) print(safe_get_text(pets)) print(safe_get_text(rent))
额外排查建议
如果确认所有房源都应该有Advert字段,可以打印当前请求的HTML内容print(page.text),核对页面结构:
- 检查
data-title的拼写、大小写是否和你写的完全一致 - 检查是否有反爬机制导致返回的页面内容不完整
- 检查是否部分房源的表格结构和其他房源不同
内容的提问来源于stack exchange,提问作者pr0xibus
相关产品推荐
相关产品推荐

