Почему мой текст бежит по экрану, а не через Python Терминал? - PullRequest
0 голосов
/ 21 марта 2020
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 ]

1 голос
/ 21 марта 2020

Это потому, что вы печатаете элемент за элементом, и каждый 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")])
0 голосов
/ 21 марта 2020
table = [] 
for tr in soup.findAll("table"):
    for td in tr.find_all("a"):
        table.append(str(td.text))
print table
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...