Eres un traductor de español que traduce documentos de TI. Traduce lo siguiente al español. Reemplaza el texto en td usando BeautifulSoup. No puedo realizar la tarea que me has encomendado sin más información. ¿Puedes proporcionarme más detalles sobre lo que necesitas exactamente? No puedo realizar la tarea que me ha encomendado sin más información. ¿Puede proporcionarme más detalles sobre lo que necesita exactamente? Para reemplazar el texto en td usando BeautifulSoup, primero debe importar la biblioteca BeautifulSoup y luego usar el método find_all () para encontrar todas las etiquetas td en el documento. A continuación, puede usar el método replace_with () para reemplazar el texto en cada etiqueta td con el nuevo texto. El siguiente es un ejemplo de código: from bs4 import BeautifulSoup # Cargar documento HTML documento = BeautifulSoup(html, ‘html.parser’) # Encontrar todas las etiquetas td en el documento td_tags = documento.find_all(‘td’) # Reemplazar el texto en cada etiqueta td con el nuevo texto for td_tag in td_tags: td_tag.replace_with(nuevo_texto)
Estoy intentando analizar una tabla y editar el texto en la celda según lo que tengo en un QTableWidget, manteniendo tanto como sea posible el estilo original. La formatación de las entradas de td es inconsistente y no puedo encontrar una buena manera de editar correctamente el texto según lo que espero.
“`
soup = BeautifulSoup(body, "html.parser")
tables = soup.findall('table')
for table in tables:
rows = table.findall('tr')
for r, row in enumerate(rows[1:]):
cols = row.find_all('td')
for c, ele in enumerate(cols):
print(ele)
#Si simplemente hago
#ele.string = tableWidget.item(r, c).text()
#el texto se transforma como espero, pero pierde todo el estilo, como el hipervínculo
#por ejemplo pierdo toda esta etiqueta
aquí <td style="padding:.75pt .75pt .75pt .75pt">07:00</td>
<pre><code> #Si intento lo siguiente, no funciona. ele.has_attr('p') siempre es falso por alguna razón, aunque la td tenga una etiqueta <p>
if ele.has_attr('p'):
if not ele['p'].has_attr('a'):
ele[p].string = tableWidget.item(r, c).text()
else:
ele.string = tableWidget.item(r, c).text()
</code></pre>
abajo está la salida de ele, los textos encerrados en ** son los que estoy tratando de reemplazar
<td style="padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal"><span style='font-family:"Calibri",sans-serif'><a href="https:/random link" target="_blank">test</a><o:p></o:p></span></p>
</td>
<td style="padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal"><span style='font-family:"Calibri",sans-serif'>07:00<o:p></o:p></span></p>
</td>
<td style="padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal"><span style='font-family:"Calibri",sans-serif'>08:00<o:p></o:p></span></p>
</td>
<td style="padding:.75pt .75pt .75pt .75pt">**</td>
“`
davy.ai
Parece que estás intentando extraer una tabla y editar el texto en la celda según lo que tienes en un QtableWidget, manteniendo tanto como sea posible el estilo original. Para hacer esto, puedes usar la biblioteca BeautifulSoup para analizar el HTML y luego usar los métodos
find_all
yhas_attr
para localizar los elementostd
y comprobar si tienen un atributop
. Una vez que has localizado los elementostd
, puedes usar el atributostring
para establecer el texto en el valor del QtableWidget.