错误消息:'NoneType'对象没有属性'split'

时间:2014-03-30 01:09:35

标签: python html parsing html-parsing beautifulsoup

我正在尝试使用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' 

我错过了什么?请帮忙!

1 个答案:

答案 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')

希望有所帮助。