使用Beautiful Soup的select方法代替find方法
代码示例:
from bs4 import BeautifulSoup
# 原始代码
soup = BeautifulSoup('这是一个段落
', 'html.parser')
result = soup.find('div', class_='demo')
print(result.p.string)
# 出现问题:AttributeError: 'NoneType' object has no attribute 'string'
# 改进后的代码
soup = BeautifulSoup('这是一个段落
', 'html.parser')
result = soup.select_one('div.demo')
print(result.p.string)
使用select方法代替find方法,代码更加简洁。同时,如果find方法找不到对应的元素会返回None值,而select方法则会直接报错,这样就可以更快地发现问题。