AttributeError:'Resultset'对象没有属性'findAll

时间:2016-07-18 16:05:29

标签: python beautifulsoup

我正在尝试编写一些代码,这些代码将从互联网上抓取财务数据,然后将其作为表格中的表格呈现。我遇到的问题是我一直返回一个错误,上面写着:AttributeError:'ResultSet'对象没有属性'findAll' 我不知道为什么它会一直这样,我已经尝试了很多东西来摆脱错误,但它只是不断回来。我希望这里的一些人能够对这种情况有所了解。我的代码如下:

    import urllib2

    from bs4 import BeautifulSoup

    Goog_page = 'https://uk.finance.yahoo.com/q/hp?s=GOOG'

    page = urllib2.urlopen(Goog_page)

    html = page.read()

    soup = BeautifulSoup(html, "lxml")

    soup.prettify().encode('UTF-8')

    #print soup.findAll('table')

    right_table = soup.find_all('table', {'class':'yfnc_datamodoutline1'})




    A=[]
    B=[]
    C=[]
    D=[]
    E=[]
    F=[]
    G=[]
    H=[]
    I=[]
    J=[]

    def parse_string(el):
        text = ''.join(el.findAll(text=True))
        return text.strip()
    for rows in right_table:
        rows = map(parse_string, right_table.findAll('tr'))
        for cell in rows:
            data = map(parse_string, rows.findAll('td'))
            if len(data)>1:
                    A.append(data[0].find(text=True))
                    B.append(data[1].find(text=True))
                    C.append(data[2].find(text=True))
                    D.append(data[3].find(text=True))
                    E.append(data[4].find(text=True))
                    F.append(data[5].find(text=True))
                    G.append(data[6].find(text=True))
                    H.append(data[7].find(text=True))
                    I.append(data[8].find(text=True))
                    J.append(data[9].find(text=True))

我得到的错误是:文件“...”,第37行,在rows = right_table.findAll('tr')中然后打印出错误信息。

我正在使用python 2.7和Windows 8.1

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在代码的这一部分:

data = map(parse_string, rows.findAll('td'))
if len(data)>1:

如果您只有一个for元素,则需要使用data循环来遍历您的rows.find('td')对象,或使用findAll代替td

例如,如果您想获取每个<td>的文本并将其添加到列表中,您可以:

data = []
for row in right_table:
    tablecells = row.findAll('td')
    for cell in tablecells:
        data.append(row.get_text().strip())