Hướng dẫn how do i convert html tag to string in python? - làm cách nào để chuyển đổi thẻ html thành chuỗi trong python?

Tôi đang cố gắng chuyển đổi một khối HTML thành văn bản bằng Python.

Input:

<div class="body"><p><strong></strong></p>
<p><strong></strong>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa</p>
<p>Consectetuer adipiscing elit. <a href="http://example.com/" target="_blank" class="source">Some Link</a> Aenean commodo ligula eget dolor. Aenean massa</p>
<p>Aenean massa.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa</p>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa</p>
<p>Consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa</p></div>

Đầu ra của bạn:

Lorem Ipsum Dolor SIT AMET, Lãnh sự quảng cáo elit. Aennean Commodo Ligula Eget Dolor. Aenean Massa

Lãnh đạo adipiscing elit. Một số liên kết Aenenan Commodo Ligula Eget Dolor. Aenean Massa

AENEAN MASSA.LOREM IPSUM DOLOR SIT AMET, Aennean Commodo Ligula Eget Dolor. Aenean Massa

Lorem Ipsum Dolor SIT AMET, Lãnh sự quảng cáo elit. Aennean Commodo Ligula Eget Dolor. Aenean Massa

Lãnh đạo adipiscing elit. Một số liên kết Aenenan Commodo Ligula Eget Dolor. Aenean Massa

AENEAN MASSA.LOREM IPSUM DOLOR SIT AMET, Aennean Commodo Ligula Eget Dolor. Aenean Massa

#!/usr/bin/env python

import urllib2
import html2text
from BeautifulSoup import BeautifulSoup

soup = BeautifulSoup(urllib2.urlopen('http://example.com/page.html').read())

txt = soup.find('div', {'class' : 'body'})

print(html2text.html2text(txt))

Lãnh đạo adipiscing elit. Aennean Commodo Ligula Eget Dolor. Aenean Massa

Hướng dẫn how do i convert html tag to string in python? - làm cách nào để chuyển đổi thẻ html thành chuỗi trong python?

Tôi thử mô -đun

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())
3 mà không thành công nhiều:

Đối tượng

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())
4 tạo ra khối HTML ở trên. Tôi muốn chuyển đổi nó để chuyển đổi và in nó trên màn hình.21 gold badges78 silver badges117 bronze badges

Rob BednarkFeb 4, 2013 at 19:55

23.9K21 Huy hiệu vàng78 Huy hiệu bạc117 Huy hiệu đồngAaron Bandelli

Đã hỏi ngày 4 tháng 2 năm 2013 lúc 19: 52 gold badges11 silver badges16 bronze badges

1

Aaron Bandelliaron Bandelli

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())

output:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Some Link Aenean commodo ligula eget dolor. Aenean massa
Aenean massa.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa

1.1182 huy hiệu vàng11 Huy hiệu bạc16 Huy hiệu đồng

print(soup.get_text('\n'))

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())
5 đầu ra những gì bạn muốn:

soup.get_text().replace('\n','\n\n')

Hướng dẫn how do i convert html tag to string in python? - làm cách nào để chuyển đổi thẻ html thành chuỗi trong python?

Tôi thử mô -đun

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())
3 mà không thành công nhiều:

Đối tượng

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())
4 tạo ra khối HTML ở trên. Tôi muốn chuyển đổi nó để chuyển đổi và in nó trên màn hình.21 gold badges78 silver badges117 bronze badges

Rob BednarkFeb 4, 2013 at 20:06

3

23.9K21 Huy hiệu vàng78 Huy hiệu bạc117 Huy hiệu đồng

from html.parser import HTMLParser

class HTMLFilter(HTMLParser):
    text = ""
    def handle_data(self, data):
        self.text += data

f = HTMLFilter()
f.feed(data)
print(f.text)

Hướng dẫn how do i convert html tag to string in python? - làm cách nào để chuyển đổi thẻ html thành chuỗi trong python?

Đã hỏi ngày 4 tháng 2 năm 2013 lúc 19: 5

Aaron Bandelliaron Bandelli17 gold badges80 silver badges80 bronze badges

1.1182 huy hiệu vàng11 Huy hiệu bạc16 Huy hiệu đồngApr 24, 2019 at 8:03

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())
5 đầu ra những gì bạn muốn:FrBrGeorge

Để giữ Newlines:5 silver badges6 bronze badges

4

Để giống hệt với ví dụ của bạn, bạn có thể thay thế một dòng mới bằng hai dòng mới:

import re

data = """<div class="body"><p><strong></strong></p>
<p><strong></strong>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa</p>
<p>Consectetuer adipiscing elit. <a href="http://example.com/" target="_blank" class="source">Some Link</a> Aenean commodo ligula eget dolor. Aenean massa</p>
<p>Aenean massa.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa</p>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa</p>
<p>Consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa</p></div>"""

data = re.sub(r'<.*?>', '', data)

print(data)

Đã trả lời ngày 4 tháng 2 năm 2013 lúc 20: 0

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Some Link Aenean commodo ligula eget dolor. Aenean massa
Aenean massa.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa

Hướng dẫn how do i convert html tag to string in python? - làm cách nào để chuyển đổi thẻ html thành chuỗi trong python?

Tôi thử mô -đun

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())
3 mà không thành công nhiều:

Đối tượng

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())
4 tạo ra khối HTML ở trên. Tôi muốn chuyển đổi nó để chuyển đổi và in nó trên màn hình.21 gold badges78 silver badges117 bronze badges

Rob BednarkFeb 4, 2013 at 20:02

Hướng dẫn how do i convert html tag to string in python? - làm cách nào để chuyển đổi thẻ html thành chuỗi trong python?

23.9K21 Huy hiệu vàng78 Huy hiệu bạc117 Huy hiệu đồngATOzTOA

Đã hỏi ngày 4 tháng 2 năm 2013 lúc 19: 522 gold badges93 silver badges116 bronze badges

3

Aaron Bandelliaron Bandelli

from bs4 import BeautifulSoup

def parse_html(html):
    elem = BeautifulSoup(html, features="html.parser")
    text = ''
    for e in elem.descendants:
        if isinstance(e, str):
            text += e.strip()
        elif e.name in ['br',  'p', 'h2', 'h2', 'h3', 'h4','tr', 'th']:
            text += '\n'
        elif e.name == 'li':
            text += '\n- '
    return text


1.1182 huy hiệu vàng11 Huy hiệu bạc16 Huy hiệu đồng

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())
5 đầu ra những gì bạn muốn:Mar 18, 2021 at 11:57

Để giữ Newlines:Andreas

Để giống hệt với ví dụ của bạn, bạn có thể thay thế một dòng mới bằng hai dòng mới:16 silver badges27 bronze badges

Đã trả lời ngày 4 tháng 2 năm 2013 lúc 20: 0

#!/usr/bin/env python

import urllib2
import html2text
from BeautifulSoup import BeautifulSoup

soup = BeautifulSoup(urllib2.urlopen('http://example.com/page.html').read())

txt = soup.find('div', {'class' : 'body'})

print(html2text.html2text(txt))
0

Có thể sử dụng tiêu chuẩn Python _______26:Feb 4, 2013 at 20:11

Hướng dẫn how do i convert html tag to string in python? - làm cách nào để chuyển đổi thẻ html thành chuỗi trong python?

t-8cht-8cht-8ch

Julienc12 silver badges18 bronze badges

4

17.8K17 Huy hiệu vàng80 Huy hiệu bạc80 Huy hiệu đồng

#!/usr/bin/env python

import urllib2
import html2text
from BeautifulSoup import BeautifulSoup

soup = BeautifulSoup(urllib2.urlopen('http://example.com/page.html').read())

txt = soup.find('div', {'class' : 'body'})

print(html2text.html2text(txt))
1

Đã trả lời ngày 24 tháng 4 năm 2019 lúc 8: 0

Frbgeenguargegegegegegegege

4905 Huy hiệu bạc6 Huy hiệu ĐồngJun 3, 2020 at 18:45

Bạn có thể sử dụng một biểu thức thông thường, nhưng nó không được khuyến khích. Mã sau đây xóa tất cả các thẻ HTML trong dữ liệu của bạn, cung cấp cho bạn văn bản:Mark Chackerian

Đầu ra6 gold badges104 silver badges97 bronze badges

Đã trả lời ngày 4 tháng 2 năm 2013 lúc 20: 0

#!/usr/bin/env python

import urllib2
import html2text
from BeautifulSoup import BeautifulSoup

soup = BeautifulSoup(urllib2.urlopen('http://example.com/page.html').read())

txt = soup.find('div', {'class' : 'body'})

print(html2text.html2text(txt))
2

AtoztoaatoztoaSep 15, 2020 at 9:50

Hướng dẫn how do i convert html tag to string in python? - làm cách nào để chuyển đổi thẻ html thành chuỗi trong python?

33.6K22 Huy hiệu vàng93 Huy hiệu bạc116 Huy hiệu Brozedermasmid

Vấn đề chính là cách bạn giữ một số định dạng cơ bản. Đây là cách tiếp cận tối thiểu của riêng tôi đối với các dòng và đạn mới của Kee. Tôi chắc chắn đó không phải là giải pháp cho mọi thứ bạn muốn giữ nó là điểm khởi đầu:4 silver badges7 bronze badges

Trên một dòng mới cho _

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())
7 và một dòng mới với _
from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())
8 trước văn bản cho các phần tử _
from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())
9

Input:

#!/usr/bin/env python

import urllib2
import html2text
from BeautifulSoup import BeautifulSoup

soup = BeautifulSoup(urllib2.urlopen('http://example.com/page.html').read())

txt = soup.find('div', {'class' : 'body'})

print(html2text.html2text(txt))
3

Output:

#!/usr/bin/env python

import urllib2
import html2text
from BeautifulSoup import BeautifulSoup

soup = BeautifulSoup(urllib2.urlopen('http://example.com/page.html').read())

txt = soup.find('div', {'class' : 'body'})

print(html2text.html2text(txt))
4
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Some Link Aenean commodo ligula eget dolor. Aenean massa
Aenean massa.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa

Đã trả lời ngày 18 tháng 3 năm 2021 lúc 11: 5Oct 9, 2020 at 20:38

Andreasandreasemehex

87816 Huy hiệu bạc27 Huy hiệu đồng9 gold badges53 silver badges93 bronze badges

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Some Link Aenean commodo ligula eget dolor. Aenean massa
Aenean massa.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
0 đặt một dòng mới giữa các đoạn văn.

#!/usr/bin/env python

import urllib2
import html2text
from BeautifulSoup import BeautifulSoup

soup = BeautifulSoup(urllib2.urlopen('http://example.com/page.html').read())

txt = soup.find('div', {'class' : 'body'})

print(html2text.html2text(txt))
6

Đã trả lời ngày 4 tháng 2 năm 2013 lúc 20: 1Sep 25, 2014 at 20:47

1

2.51512 Huy hiệu bạc18 Huy hiệu đồng

#!/usr/bin/env python

import urllib2
import html2text
from BeautifulSoup import BeautifulSoup

soup = BeautifulSoup(urllib2.urlopen('http://example.com/page.html').read())

txt = soup.find('div', {'class' : 'body'})

print(html2text.html2text(txt))
7

Tôi thích câu trả lời không phụ thuộc của @Dec 12, 2017 at 22:58

Xem bình luận cho việc sử dụng.Sarah Messer

Cuộc trò chuyện này tất cả các văn bản bên trong

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Some Link Aenean commodo ligula eget dolor. Aenean massa
Aenean massa.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
1, theo lý thuyết có thể bao gồm các thẻ
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Some Link Aenean commodo ligula eget dolor. Aenean massa
Aenean massa.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
3 và _______34. Furationing có thể được điều trị bằng cách mở rộng mô hình như được hiển thị cho
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Some Link Aenean commodo ligula eget dolor. Aenean massa
Aenean massa.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
1 - tức là. Đặt các biến thể hiện _______36 hoặc
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Some Link Aenean commodo ligula eget dolor. Aenean massa
Aenean massa.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
23 silver badges40 bronze badges

Đã trả lời ngày 3 tháng 6 năm 2020 lúc 18: 4

#!/usr/bin/env python

import urllib2
import html2text
from BeautifulSoup import BeautifulSoup

soup = BeautifulSoup(urllib2.urlopen('http://example.com/page.html').read())

txt = soup.find('div', {'class' : 'body'})

print(html2text.html2text(txt))
8

Mark Chackerianmark Chackerian

Lorem Ipsum Dolor SIT AMET, Lãnh sự quảng cáo elit. Aennean Commodo Ligula Eget Dolor. Aenean Massa

Lãnh đạo adipiscing elit. Một số liên kết Aenenan Commodo Ligula Eget Dolor. Aenean Massa

AENEAN MASSA.LOREM IPSUM DOLOR SIT AMET, Aennean Commodo Ligula Eget Dolor. Aenean Massa

Lorem Ipsum Dolor SIT AMET, Lãnh sự quảng cáo elit. Aennean Commodo Ligula Eget Dolor. Aenean Massa

Lãnh đạo adipiscing elit. Một số liên kết Aenenan Commodo Ligula Eget Dolor. Aenean Massa

20.3k6 Huy hiệu vàng104 Huy hiệu bạc97 Huy hiệu BrozeAug 19 at 13:06

Có một số điều tốt đẹp ở đây, và tôi cũng có thể ném vào giải pháp của mình:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Some Link Aenean commodo ligula eget dolor. Aenean massa
Aenean massa.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
8-based approach with markup sanitizing before converting to plain text.

Đã trả lời ngày 15 tháng 9 năm 2020 lúc 9: 5

Sẽ xóa các khối tập lệnh và tất cả các văn bản không mong muốn.Bạn có thể định cấu hình phiên bản LXML Cleaner cho phù hợp với nhu cầu của bạn.

#!/usr/bin/env python

import urllib2
import html2text
from BeautifulSoup import BeautifulSoup

soup = BeautifulSoup(urllib2.urlopen('http://example.com/page.html').read())

txt = soup.find('div', {'class' : 'body'})

print(html2text.html2text(txt))
9

Đã trả lời ngày 25 tháng 10 năm 2021 lúc 13:48Oct 25, 2021 at 13:48

Hướng dẫn how do i convert html tag to string in python? - làm cách nào để chuyển đổi thẻ html thành chuỗi trong python?

CCPIZZACCPIZZAccpizza

26.5K14 Huy hiệu vàng155 Huy hiệu bạc150 Huy hiệu đồng14 gold badges155 silver badges150 bronze badges

Cá nhân tôi thích giải pháp Gazpacho của Emehex, nhưng nó chỉ sử dụng biểu thức chính quy để lọc các thẻ.Không còn phép thuật nữa.Điều này có nghĩa là giải pháp giữ văn bản bên trong và.

Vì vậy, tôi thà thực hiện một giải pháp đơn giản dựa trên các biểu thức thông thường và sử dụng thư viện Python 3.4 tiêu chuẩn cho các thực thể HTML UNESCAPE:

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())
0

Tất nhiên, điều này không có lỗi chứng minh là các giải pháp PLUSSOUP hoặc các trình phân tích cú pháp khác.Nhưng bạn không cần bất kỳ gói bên thứ 3 nào.

Đã trả lời ngày 29 tháng 10 năm 2021 lúc 11:39Oct 29, 2021 at 11:39

Hướng dẫn how do i convert html tag to string in python? - làm cách nào để chuyển đổi thẻ html thành chuỗi trong python?

QuickQuickquick

1.05410 Huy hiệu bạc17 Huy hiệu đồng10 silver badges17 bronze badges

Tôi đã gặp phải vấn đề tương tự bằng cách sử dụng Scrapy, bạn có thể thử thêm điều này vào Cài đặt.Py

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())
1

Đã trả lời ngày 28 tháng 6 lúc 23:46Jun 28 at 23:46

Jaypee Tanjaypee tanJaypee Tan

951 Huy hiệu bạc10 Huy hiệu đồng1 silver badge10 bronze badges

from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())
2

Đã trả lời ngày 18 tháng 1 lúc 8:02Jan 18 at 8:02

Hướng dẫn how do i convert html tag to string in python? - làm cách nào để chuyển đổi thẻ html thành chuỗi trong python?

1