Вставка тега в HTML с BeautifulSoup с уже существующими значениями - PullRequest
1 голос
/ 09 марта 2019

Я строю на примере Как вставить новый тег в объект BeautifulSoup? .

import pandas
from bs4 import BeautifulSoup

a = [['1/2/2014', 'a', '6', 'z1'],
     ['1/2/2014', 'a', '3', 'z1'],
     ['1/3/2014', 'c', '1', 'x3'],
     ]
df = pandas.DataFrame.from_records(a[1:], columns=a[0])
soup = BeautifulSoup(df.to_html(header=False), 'lxml')

original_tag = soup.find_all('td')[4]
new_tag = soup.new_tag('FONT', COLOR='white')
original_tag.append(new_tag)
print(soup)

Как видите. 1/3/2014 находится вне тега <FONT COLOR>. Мне нужно, чтобы тег <FONT COLOR> был обернут вокруг 1/3/2014

1 Ответ

3 голосов
/ 09 марта 2019

Вы можете использовать wrap для содержимого требуемого тега.

import pandas
from bs4 import BeautifulSoup

a = [['1/2/2014', 'a', '6', 'z1'],
     ['1/2/2014', 'a', '3', 'z1'],
     ['1/3/2014', 'c', '1', 'x3']]
df = pandas.DataFrame.from_records(a[1:], columns=a[0])
soup = BeautifulSoup(df.to_html(header=False), 'lxml')

original_tag = soup.find_all('td')[4]
new_tag = soup.new_tag('FONT', COLOR='white')
<strong>original_tag.contents[0].wrap(new_tag)</strong>
print(soup)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...