очистка веб-страницы с python - PullRequest
0 голосов
/ 22 апреля 2020

Вот код, он выдает то, что я хочу, но не так, как я хочу вывести результат


   import requests
    from bs4 import BeautifulSoup
    url = 'https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Florida'

    fl = requests.get(url)
    fl_soup = BeautifulSoup(fl.text, 'html.parser')
    block = fl_soup.findAll('td', {'class': 'bb-04em'})

    for name in fl_soup.findAll('td', {'class': 'bb-04em'}):
        print(name.text)

output

2020-04- 21

27,869 (+3,0%)

867

Мне бы хотелось, чтобы результат был примерно таким: 2020-04-21 27,869 (+ 3,0%) 867

Ответы [ 3 ]

0 голосов
/ 22 апреля 2020

Прежде чем получить доступ к каждому <td>, попробуйте получить данные по каждому <tr>, вы получите информацию о каждой строке таблицы. Тогда вы можете искать внутри <td> или что угодно.

0 голосов
/ 23 апреля 2020

Для последнего оператора печати включите параметр конца. По умолчанию оператор print имеет значение end = '\ n'

print(name.text, end=' ')

Это даст вам желаемый результат.

0 голосов
/ 22 апреля 2020

Следующее должно делать то, что вы хотите:

import requests
from bs4 import BeautifulSoup
url = 'https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Florida'

fl = requests.get(url)
fl_soup = BeautifulSoup(fl.text, 'html.parser')

div_with_table = fl_soup.find('div', {'class': 'barbox tright'})
table = div_with_table.find('table')

for row in table.findAll('tr'):
    for cell in row.findAll('td', {'class': 'bb-04em'}):
        print(cell.text, end=' ')
    print()  # new line for each row
...