Python Tkinter仅显示段落的最后三行

Python Tkinter仅显示段落的最后三行,python,tkinter,Python,Tkinter,Tkinter未在窗口中显示完整段落 我的代码:- import bs4 as bs import urllib.request import tkinter as tk dinosaur = 'dinosaur' url = ('https://html.duckduckgo.com/html?q='+dinosaur) sauce = urllib.request.urlopen(url).read() soup = bs.BeautifulSoup(sauce, 'lxml')

Tkinter未在窗口中显示完整段落

我的代码:-

import bs4 as bs
import urllib.request
import tkinter as tk  


dinosaur = 'dinosaur'

url = ('https://html.duckduckgo.com/html?q='+dinosaur)

sauce = urllib.request.urlopen(url).read()
soup = bs.BeautifulSoup(sauce, 'lxml')
a = soup.body.b
print(a)

for i in soup.find_all('a', class_='result__snippet'):
    print(i.get_text(separator=' - ', strip=True))
    abc = (i.get_text(separator=' - ', strip=True))



    
    
root = tk.Tk()
S = tk.Scrollbar(root)
T = tk.Text(root, height=4, width=50)
S.pack(side=tk.RIGHT, fill=tk.Y)
T.pack(side=tk.LEFT, fill=tk.Y)
S.config(command=T.yview)
T.config(yscrollcommand=S.set)
T.insert(tk.END, abc)
tk.mainloop()
但它在终端中显示了整个段落


有人能指出我犯的错误吗?

代码的以下部分应如下所示:

abc=""
for i in soup.find_all('a', class_='result__snippet'):
    print(i.get_text(separator=' - ', strip=True))
    abc += (i.get_text(separator=' - ', strip=True))
+=
运算符连接字符串,这样您就可以得到全文,而不仅仅是循环的最后一次迭代

注 Tcl不支持所有字符。因此,根据字符的不同,无法打印

要避免此问题,请添加以下行:

abc_clean = ""
char_list = [abc[j] for j in range(len(abc)) if ord(abc[j]) in range(65536)]
for j in char_list:
    abc_clean+=j
然后:

T.insert(tk.END, abc_clean)

abc+=(i.get_text(分隔符='-',strip=True))name错误:名称“abc”未定义是,抱歉,我忘记了for循环上方的行。现在它是固定的。那么我如何剪切这些字符呢?我提供了清除字符串中奇怪字符的行