我正在尝试使用BeautifulSoup分离我从html文档中提取的位置信息和电影标题信息。
我从这样的行中提取信息:
<div class="filmo-row even" id="writer-tt1308667">
我想用“ - ”
分隔“作家”和“tt1308667”我的代码是:
i=0
b = soup.find_all('div')
for row in b:
Position_ttcode=row.get('id')
print Position_ttcode
split=Position_ttcode.split('-')
我收到错误:
AttributeError: 'NoneType' object has no attribute 'split'
我错过了什么?请帮忙!
答案 0 :(得分:1)
问题在于,并非页面上的所有div
元素都具有id
属性。
您应该通过向find_all()
提供班级名称或ID属性来缩小搜索范围:
for div in soup.find_all("div", {'class': 'filmo-row'}):
print div.get('id')
或者,例如,您可以使用div
模块检查id
是否具有包含 writer-
文本的re
属性:< / p>
for div in soup.find_all("div", {'id': re.compile('writer-'}):
print div.get('id')
希望有所帮助。