将beautifulsoup文本分配给字符串列表

时间:2017-05-24 08:15:02

标签: python string list beautifulsoup

我正在尝试使用从网站html检索的文本创建字符串列表(或数组),然后打印给定的索引。我正在使用美丽汤中的find_all函数来检索文本。有没有办法直接从beautifulsoup对象访问对象?或者我需要从对象创建一个字符串列表?如果是这样,为什么我现在的代码不起作用?

我的尝试:

    html = urlopen("http://www.thesaurus.com/browse/" + word + "?s=t")
    bsObj = BeautifulSoup(html.read(), "lxml")
    for synonym in bsObj.find_all("span", class_="text"):
        synlist = synlist.append(synonym.text)
except:
    print(word)
print(synlist[2])

我得到的错误是:

  

NameError:name' synlist'未定义

2 个答案:

答案 0 :(得分:0)

您需要在synlist之前定义try     synlist = []

答案 1 :(得分:0)

为什么不直接使用:

try:
    html = urlopen("http://www.thesaurus.com/browse/" + word + "?s=t")
    bsObj = BeautifulSoup(html.read(), "lxml")
    synlist = bsObj.find_all("span", class_="text")

except:
    print(word)

print(synlist[2].text)

它自己制作一个数组,为什么要制作另一个?

编辑:顺便说一句我不知道是什么词,我假设它存在于其他地方。还有python tab间隔错了,我的ocd你知道吗?