Hướng dẫn beautifulsoup convert text to html - beautifulsoup chuyển đổi văn bản sang html

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

Input:

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

Đầ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 beautifulsoup convert text to html - beautifulsoup chuyển đổi văn bản sang html

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 badges118 bronze badges

Rob BednarkFeb 4, 2013 at 19:55

23.9K21 Huy hiệu vàng78 Huy hiệu bạc118 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 beautifulsoup convert text to html - beautifulsoup chuyển đổi văn bản sang html

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 badges118 bronze badges

Rob BednarkFeb 4, 2013 at 20:06

3

23.9K21 Huy hiệu vàng78 Huy hiệu bạc118 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 beautifulsoup convert text to html - beautifulsoup chuyển đổi văn bản sang html

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

Aaron Bandelliaron Bandelli17 gold badges81 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 = """

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

""" 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 beautifulsoup convert text to html - beautifulsoup chuyển đổi văn bản sang html

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 badges118 bronze badges

Rob BednarkFeb 4, 2013 at 20:02

Hướng dẫn beautifulsoup convert text to html - beautifulsoup chuyển đổi văn bản sang html

23.9K21 Huy hiệu vàng78 Huy hiệu bạc118 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 beautifulsoup convert text to html - beautifulsoup chuyển đổi văn bản sang html

t-8cht-8cht-8ch

Julienc12 silver badges18 bronze badges

4

17.9K17 Huy hiệu vàng81 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 beautifulsoup convert text to html - beautifulsoup chuyển đổi văn bản sang html

33.7K22 Huy hiệu vàng93 Huy hiệu bạc116 Huy hiệu đồngdermasmid

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

88816 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.4K6 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:chicchera

Đã trả lời ngày 15 tháng 9 năm 2020 lúc 9: 51 silver badge2 bronze badges

Dermasmiddermasmid

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.

Kịch bản chấp nhận một đường dẫn đến tệp HTML hoặc stdin đường ống.

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 beautifulsoup convert text to html - beautifulsoup chuyển đổi văn bản sang html

CCPIZZACCPIZZAccpizza

26.7K15 Huy hiệu vàng156 Huy hiệu bạc151 Huy hiệu đồng15 gold badges156 silver badges151 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 beautifulsoup convert text to html - beautifulsoup chuyển đổi văn bản sang html

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 beautifulsoup convert text to html - beautifulsoup chuyển đổi văn bản sang html

1

Làm cách nào để chuyển đổi văn bản thành HTML?

Trên menu Công cụ, nhấp vào Tùy chọn, sau đó nhấp vào Tab Định dạng thư Under Message Format, in the Compose in this message format list, click HTML or Plain Text, and then click OK.

Làm cách nào để chuyển đổi TXT thành HTML trong Python?

Cách chuyển đổi TXT thành HTML..
Cài đặt 'Aspose.Từ cho Python qua.MẠNG LƯỚI'..
Thêm một tham chiếu thư viện (nhập thư viện) vào dự án Python của bạn ..
Mở tệp TXT nguồn trong Python ..
Gọi phương thức 'Lưu ()', chuyển tên tệp đầu ra với phần mở rộng HTML ..
Nhận kết quả chuyển đổi TXT là HTML ..

Làm thế nào để bạn tạo ra một HTML đẹp?

Approach:..
Nhập mô -đun ..
Tạo tài liệu HTML và chỉ định thẻ '' vào mã ..
Chuyển tài liệu HTML vào hàm đẹp () ..
Sử dụng thẻ 'P' để trích xuất các đoạn văn từ đối tượng đẹp ..
Nhận văn bản từ tài liệu HTML bằng get_text () ..

Bạn có thể chuyển đổi HTML thành TXT không?

Nhấp lại tab Tệp, sau đó nhấp vào tùy chọn Lưu dưới dạng. Trong danh sách lưu xuống dưới dạng loại, chọn tùy chọn Văn bản thuần túy (*.TXT).Ngoài ra, bạn có thể cần thay đổi tiện ích mở rộng tệp trong trường Tên tệp thành TXT, nếu nó không tự động thay đổi. In the Save as type drop-down list, select the Plain Text (*. txt) option. Additionally, you may need to change the file extension in the File name field to be txt, if it does not automatically change.