Очистить таблицу с помощью \ n внутри объекта BeautifulSoup - PullRequest
1 голос
/ 30 марта 2019

Я извлек таблицу из запускаемого объекта BeautifulSoup, например

<html><body><p>{"datasets":{"cf":"</p><table class="fs-table" id="cf-table">\n                    <tbody>\n                        <tr class="thead"><td></td><td>...

"\ n" путается с моей таблицей при попытке преобразовать его в фрейм данных

Я пытался:

soup = BeautifulSoup(res.content,'lxml')
    cleanSoup = BeautifulSoup(str(soup).replace("\n                    ", ""))
    table = cleanSoup.find_all('table')[0]    

Но это не работает .. есть идеи, как мне избавиться от \ n ?? Спасибо тебе

Ответы [ 2 ]

0 голосов
/ 31 марта 2019

Сначала разделите данные с помощью \ n, а затем удалите пробелы, а затем соедините.

from bs4 import BeautifulSoup
htmldata='''<html><body><p>{"datasets":{"cf":"</p>
<table class="fs-table" id="cf-table">\n                    <tbody>\n                        <tr class="thead"><td></td><td>...'''

htmldata="".join(item.strip() for item in htmldata.split("\n"))

soup = BeautifulSoup(htmldata,'lxml')
table = soup.find_all('table')[0]
print(table)

Выход:

<table class="fs-table" id="cf-table"><tbody><tr class="thead"><td></td><td>...</td></tr></tbody></table>

Надеюсь, это поможет.

0 голосов
/ 30 марта 2019

Попробуйте модуль re:

import re

rx = re.compile(r"\n {1,}")
soup = BeautifulSoup(res.content,'lxml')
cleanSoup = BeautifulSoup(re.sub(rx, "", str(soup)))
table = cleanSoup.find_all('table')[0] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...