Hướng dẫn python re remove html tags - python lại xóa các thẻ html

26

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có một chuỗi chứa đánh dấu HTML như liên kết, văn bản in đậm, v.v.

Tôi muốn tước tất cả các thẻ để tôi chỉ có văn bản thô.

Cách tốt nhất để làm điều này là gì? Regex?

Hỏi ngày 3 tháng 8 năm 2010 lúc 17:02Aug 3, 2010 at 17:02

Hướng dẫn python re remove html tags - python lại xóa các thẻ html

BlankmanblankmanBlankman

252K315 Huy hiệu vàng747 Huy hiệu bạc1172 Huy hiệu đồng315 gold badges747 silver badges1172 bronze badges

0

Nếu bạn định sử dụng regex:

import re
def striphtml(data):
    p = re.compile(r'<.*?>')
    return p.sub('', data)

>>> striphtml('I Want This text!')
'I Want This text!'

Đã trả lời ngày 3 tháng 8 năm 2010 lúc 17:09Aug 3, 2010 at 17:09

John Howardjohn HowardJohn Howard

57.9K23 Huy hiệu vàng48 Huy hiệu bạc65 Huy hiệu Đồng23 gold badges48 silver badges65 bronze badges

3

Afaik sử dụng Regex là một ý tưởng tồi để phân tích cú pháp HTML, bạn sẽ tốt hơn khi sử dụng trình phân tích cú pháp HTML/XML như Soup xinh đẹp.

Đã trả lời ngày 3 tháng 8 năm 2010 lúc 17:17Aug 3, 2010 at 17:17

6

Sử dụng lxml.html. Nó nhanh hơn nhiều so với văn bản đẹp và thô là một lệnh duy nhất.

>>> import lxml.html
>>> page = lxml.html.document_fromstring('...')
>>> page.cssselect('body')[0].text_content()
'...'

Đã trả lời ngày 3 tháng 8 năm 2010 lúc 19:57Aug 3, 2010 at 19:57

Hướng dẫn python re remove html tags - python lại xóa các thẻ html

Tim McNamaratim McNamaraTim McNamara

17.6K4 Huy hiệu vàng51 Huy hiệu bạc82 Huy hiệu Đồng4 gold badges51 silver badges82 bronze badges

3

Sử dụng SGMLParser. regex hoạt động trong trường hợp đơn giản. Nhưng có rất nhiều sự phức tạp với HTML mà bạn không cần phải đối phó.

>>> from sgmllib import SGMLParser
>>>
>>> class TextExtracter(SGMLParser):
...     def __init__(self):
...         self.text = []
...         SGMLParser.__init__(self)
...     def handle_data(self, data):
...         self.text.append(data)
...     def getvalue(self):
...         return ''.join(ex.text)
...
>>> ex = TextExtracter()
>>> ex.feed('hello > world')
>>> ex.getvalue()
'hello > world'

Đã trả lời ngày 3 tháng 8 năm 2010 lúc 17:32Aug 3, 2010 at 17:32

Wai Yip Tungwai Yip TungWai Yip Tung

17.6K10 Huy hiệu vàng42 Huy hiệu bạc46 Huy hiệu đồng10 gold badges42 silver badges46 bronze badges

1

Tùy thuộc vào việc văn bản sẽ chứa '>' hoặc '

def cleanStrings(self, inStr):
  a = inStr.find('<')
  b = inStr.find('>')
  if a < 0 and b < 0:
    return inStr
  return cleanString(inStr[a:b-a])

Đã trả lời ngày 3 tháng 8 năm 2010 lúc 17:15Aug 3, 2010 at 17:15

Snurresnurresnurre

2.9852 Huy hiệu vàng23 Huy hiệu bạc31 Huy hiệu đồng2 gold badges23 silver badges31 bronze badges

Đầu tuần này, tôi cần xóa một số thẻ HTML khỏi văn bản, chuỗi đích đã được lưu với các thẻ HTML trong cơ sở dữ liệu và một trong những yêu cầu chỉ định rằng trong một trang cụ thể, chúng tôi cần hiển thị nó dưới dạng văn bản thô.

Ngay từ đầu tôi đã biết rằng các biểu thức thông thường có thể áp dụng cho thử thách này, nhưng vì tôi không phải là một chuyên gia với các biểu thức thường xuyên, tôi đã tìm kiếm một số lời khuyên trong Stack Overflow và sau đó tôi tìm thấy những gì tôi thực sự cần.

Dưới đây là chức năng tôi đã xác định:

def remove_html_tags(text):
"""Remove html tags from a string"""
import re
clean = re.compile('<.*?>')
return re.sub(clean, '', text)

Vì vậy, ý tưởng là xây dựng một biểu thức thông thường có thể tìm thấy tất cả các ký tự <> <> là một tỷ lệ đầu tiên trong một văn bản và sau đó, sử dụng hàm phụ, chúng ta có thể thay thế tất cả các văn bản giữa các ký hiệu đó bằng một chuỗi trống.

Hãy xem điều này trong vỏ:

Hy vọng điều này có thể giúp bạn!

Làm thế nào để bạn xóa các thẻ HTML trong Python?

Sử dụng phương thức re.sub () để xóa các thẻ HTML khỏi chuỗi, ví dụ: Kết quả = Re. sub (r ' sub() method to remove the HTML tags from a string, e.g. result = re. sub(r'<.

Làm cách nào để xóa thẻ HTML bằng cách sử dụng đẹp?

Approach:..
Nhập thư viện BS4 ..
Tạo một tài liệu HTML ..
Phân tích nội dung vào một đối tượng đẹp ..
Lặp lại dữ liệu để xóa các thẻ khỏi tài liệu bằng phương thức phân tách () ..
Sử dụng phương thức Striped_Strings () để truy xuất nội dung thẻ ..
In dữ liệu được trích xuất ..

Làm thế nào để bạn xóa tất cả các thẻ văn bản trong Python?

Mã trên hoạt động như thế nào ?..
Ban đầu, chúng tôi nhập mô -đun Regex trong Python có tên là 'Re'.
Sau đó, chúng tôi sử dụng RE.biên dịch () hàm của mô -đun regex.....
'.*'có nghĩa là 0 hoặc nhiều hơn các ký tự bằng không.....
Sau đó, chúng tôi sử dụng RE.....
Cuối cùng, chúng tôi gọi chức năng Remove_html sẽ xóa các thẻ HTML khỏi chuỗi đầu vào ..

Làm cách nào để xóa thẻ văn bản trong HTML?

Các thẻ HTML có thể được xóa khỏi một chuỗi đã cho bằng cách sử dụng phương thức thay thế () của lớp chuỗi.Chúng ta có thể xóa các thẻ HTML khỏi một chuỗi đã cho bằng cách sử dụng biểu thức thông thường.Sau khi xóa các thẻ HTML khỏi một chuỗi, nó sẽ trả về một chuỗi dưới dạng văn bản thông thường.by using replaceAll() method of String class. We can remove the HTML tags from a given string by using a regular expression. After removing the HTML tags from a string, it will return a string as normal text.