【问题标题】:body=body.encode('ascii','ignore')AttributeError: 'list' object has no attribute 'encode'body=body.encode('ascii','ignore')AttributeError: 'list' object has no attribute 'encode'
【发布时间】:2013-09-11 10:41:31
【问题描述】:

为什么下面的代码给我一个错误信息:AttributeError: 'list' object has no attribute 'encode'?

import urllib2                  
from BeautifulSoup import BeautifulSoup

opener = urllib2.build_opener()         
opener.addheaders = [('user-agent', 'Mozilla/5.0')]

url = ('http://en.wikipedia.org/wiki/Pink_Floyd')

thisurl= opener.open(url).read()

soup = BeautifulSoup(thisurl)      
title = soup.title.text

body = soup.findAll('p')       
body = body.encode('ascii','ignore')

for i in body:         
    print i.text

【问题讨论】:

    标签: python python-2.7 encoding character-encoding beautifulsoup


    【解决方案1】:

    您正在尝试encode 一个列表(findAll 的结果是出现的列表)。您需要做的是遍历列表,获取您想要的文本并对其进行编码。

    body = soup.findAll('p')
    
    for i in body:
        print i.text.encode('ascii','ignore')
    

    【讨论】:

    • 非常感谢。现在完美运行! :)
    猜你喜欢
    • 1970-01-01
    • 2022-01-10
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 2022-12-01
    • 2014-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多