为什么我的文本在屏幕上而不是在Python终端中显示?

时间:2020-03-21 11:43:19

标签: python list beautifulsoup

soup = BeautifulSoup(requests.get(url).text, 
'html.parser')
for tr in soup.findAll("table"):
    for td in tr.find_all("a"):
        table = str(td.text)
        print(table)

Code
International
Languages
England
en
enk
Welsh
wk
wkk
France
fr
fk

为什么打印如下,我实际上想在下面看到输出:

['Code', 'International', 'Languages', 'England', 'en', 'enk', 'Welsh', 'wk', 'wkk', 'France', 'fr', 'fk']

2 个答案:

答案 0 :(得分:0)

那是因为您要逐项打印,并且每个print都会跟随用换行符打印的数据(除非使用end参数进行了明确更改)。要获得想要的东西,请使用:

soup = BeautifulSoup(requests.get(url).text, 'html.parser')
print([str(td.text) for tr in soup.findAll("table") for td in tr.find_all("a")])

答案 1 :(得分:0)

table = [] 
for tr in soup.findAll("table"):
    for td in tr.find_all("a"):
        table.append(str(td.text))
print table