美丽的汤 - ' ResultSet'对象没有属性' text'

时间:2017-07-10 13:43:31

标签: python web-scraping beautifulsoup

我试图从锚标记中提取文本。我知道find_all返回一个ResultSet对象,我需要迭代它,但是,我似乎无法使它工作。我的代码如下:

for all in soup.find("div", {"id": "info-area"}):
    Name = all.find_all("a")
    #print(Name) # Returns everything
    #print(Name.text) # throws error 
    for the_name in Name:
        print(Name.text) # throws error 

显然,我做错了什么但不太确定是什么?

2 个答案:

答案 0 :(得分:1)

问题是第一次循环,将代码更改为:

all_div = soup.find("div", {"id": "info-area"}) #find div with id = info-area
Name = all_div.find_all("a") # under all_div find all a
for the_name in Name: #loop through each a
    print(the_name.text) #print each a text

答案 1 :(得分:0)

@Maverick,

“名称”是列表,其中包含所有“a”标记元素。

您不能在列表中使用.text属性。

根据我的理解,以下代码应该可以使用

for the_name in Name:
    print(the_name.text)

你的方法是正确的。但是你在上面的循环中所犯的错误是,对于列表中的每个元素,你调用元素(“the_name”)而不是列表(“Name”)