Как удалить перевод строки (\ n) со страницы HTML для CSV? - PullRequest
0 голосов
/ 29 февраля 2020

Я анализирую HTML страницу с BS4:

from bs4 import BeuatifulSoup

soup = BeautifulSoup(r.content, "html.parser")
table = soup.find_all('table')[1]
print("table is ", table)
rows = table.find_all('tr')
row_list = list()

for tr in rows:
    td = tr.find_all('td')
    row = [i.text for i in td]
    row_list.append(row)
    print("Row is ", row)

Это работает, но я получаю \n, когда я go, чтобы напечатать операторы. Это портит мой файл CSV. Новая строка взята из исходного кода, который я, очевидно, не могу удалить. Вот пример строки для печати:

 Row is  ['\n        188', '\n        192', '\nPlayer1\n', '78', '271.3', '40,147', '148']

HTML для этого:

<tr id="Row34261">
<td class="">
    188</td>

<td class=" hidden-print hidden-small hidden-medium ">
    192</td>

<td class="player-name">
<a href="/players/player.html">Player1</a>
    </td><td class="hidden-small hidden-medium">78</td>
<td>271.3</td>
<td class="hidden-small hidden-medium">40,147</td>
<td class="hidden-small hidden-medium">148</td>
</tr>

Я прочитал некоторые другие сообщения и вижу, что regex или strip() может быть полезно, но вот где я заблудился.

1 Ответ

2 голосов
/ 29 февраля 2020

Поскольку вы перебираете td, вам нужно удалить пробел с помощью strip:

...

for tr in rows:
    td = tr.find_all('td')
    row = [i.text.strip() for i in td]
    row_list.append(row)
    print("Row is ", row)

...