Hướng dẫn how extract string from html tag in python? - làm thế nào để trích xuất chuỗi từ thẻ html trong python?

7

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:

<font face="ARIAL,HELVETICA" size="-2">  
JUL 28         </font>

(Nó xuất ra trên hai dòng, do đó phải có một \ n trong đó.

Tôi muốn trích xuất chuỗi ở giữa các thẻ <font></font>. Trong trường hợp này, đó là ngày 28 tháng 7, nhưng nó có thể là một ngày khác hoặc một số khác.

1) Cách tốt nhất để trích xuất giá trị từ giữa các thẻ phông chữ? Tôi đã nghĩ rằng tôi có thể trích xuất mọi thứ ở giữa "></.

Chỉnh sửa: Đã xóa câu hỏi thứ hai.

Đã hỏi ngày 27 tháng 10 năm 2011 lúc 3:46Oct 27, 2011 at 3:46

Hướng dẫn how extract string from html tag in python? - làm thế nào để trích xuất chuỗi từ thẻ html trong python?

Tụ điện thông lượng tụ điệnFlux Capacitor

1.1814 huy hiệu vàng22 Huy hiệu bạc40 Huy hiệu đồng4 gold badges22 silver badges40 bronze badges

3

Mặc dù có thể phân tích HTML tùy ý với các biểu thức thông thường, nhưng nó thường là một cái bẫy tử thần. Có những công cụ tuyệt vời ngoài kia để phân tích cú pháp HTML, bao gồm cả BeautifulSoup, đó là một lib Python có thể xử lý bị hỏng cũng như HTML khá tốt.

>>> from BeautifulSoup import BeautifulSoup as BSHTML
>>> BS = BSHTML("""
... <font face="ARIAL,HELVETICA" size="-2">  
... JUL 28         </font>"""
... )
>>> BS.font.contents[0].strip()
u'JUL 28'

Sau đó, bạn chỉ cần phân tích ngày:

>>> datetime.strptime(BS.font.contents[0].strip(), '%b %d')
>>> datetime.datetime(1900, 7, 28, 0, 0)
datetime.datetime(1900, 7, 28, 0, 0)

Đã trả lời ngày 27 tháng 10 năm 2011 lúc 4:06Oct 27, 2011 at 4:06

Kojirokojirokojiro

72.1K18 Huy hiệu vàng134 Huy hiệu bạc194 Huy hiệu đồng18 gold badges134 silver badges194 bronze badges

2

Bạn có một loạt các lựa chọn ở đây. Bạn có thể sử dụng trình phân tích cú pháp XML toàn diện như LXML, mặc dù bạn dường như muốn có một giải pháp cụ thể về miền. Tôi sẽ đi với một regex đa dòng:

import re
rex = re.compile(r'<font.*?>(.*?)</font>',re.S|re.M)
...
data = """<font face="ARIAL,HELVETICA" size="-2">  
JUL 28         </font>"""

match = rex.match(data)
if match:
    text = match.groups()[0].strip()

Bây giờ bạn có text, bạn có thể biến nó thành một ngày khá dễ dàng:

from datetime import datetime
date = datetime.strptime(text, "%b %d")

Đã trả lời ngày 27 tháng 10 năm 2011 lúc 4:00Oct 27, 2011 at 4:00

Fahhemfahhemfahhem

4664 Huy hiệu bạc8 Huy hiệu Đồng4 silver badges8 bronze badges

2

Hoặc, bạn có thể chỉ cần sử dụng súp đẹp:

Súp đẹp là trình phân tích cú pháp Python HTML/XML được thiết kế cho các dự án quay vòng nhanh như Scraping Screc

Đã trả lời ngày 27 tháng 10 năm 2011 lúc 4:03Oct 27, 2011 at 4:03

Hướng dẫn how extract string from html tag in python? - làm thế nào để trích xuất chuỗi từ thẻ html trong python?

Óscar Lópezóscar LópezÓscar López

228K35 Huy hiệu vàng305 Huy hiệu bạc378 Huy hiệu đồng35 gold badges305 silver badges378 bronze badges

1

GREP có phải là một lựa chọn không?

grep "<[^>]*>(.*)<\/[^>]*>" file

(.*) Sẽ phù hợp với nội dung của bạn.

Đã trả lời ngày 27 tháng 10 năm 2011 lúc 3:51Oct 27, 2011 at 3:51

2

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc

    Bàn luận :  ‘Gfg is Best. I love Reading CS from it.’ , tag = “br” 
    Output : [‘Gfg’, ‘Best’, ‘Reading CS’]
    Explanation : All strings between “br” tag are extracted.

    Cho một chuỗi và thẻ HTML, trích xuất tất cả các chuỗi giữa thẻ được chỉ định. : ‘

    Gfg

    is

    Best

    I love

    Reading CS

    ’  , tag = “h2” 
    Output : [‘Gfg’, ‘Best’, ‘Reading CS’] 
    Explanation : All strings between “h2” tag are extracted. 
     

    Đầu vào: & nbsp; ‘GFG là tốt nhất. Tôi thích đọc CS từ nó., Tag = Hồi Briêu & nbsp; đầu ra: [‘gfg,’ tốt nhất, ‘Đọc CS,] Giải thích: Tất cả các chuỗi giữa thẻ BR BR được trích xuất. re module this task can be performed. In this we employ, findall() function to extract all the strings by matching appropriate regex built using tag and symbols.

    Python3

    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    0
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    1

    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    2
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    3
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    4

    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    5
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    6
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    7
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    8
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    9
    >>> datetime.strptime(BS.font.contents[0].strip(), '%b %d')
    >>> datetime.datetime(1900, 7, 28, 0, 0)
    datetime.datetime(1900, 7, 28, 0, 0)
    
    0

    >>> datetime.strptime(BS.font.contents[0].strip(), '%b %d')
    >>> datetime.datetime(1900, 7, 28, 0, 0)
    datetime.datetime(1900, 7, 28, 0, 0)
    
    1
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    3
    >>> datetime.strptime(BS.font.contents[0].strip(), '%b %d')
    >>> datetime.datetime(1900, 7, 28, 0, 0)
    datetime.datetime(1900, 7, 28, 0, 0)
    
    3

    >>> datetime.strptime(BS.font.contents[0].strip(), '%b %d')
    >>> datetime.datetime(1900, 7, 28, 0, 0)
    datetime.datetime(1900, 7, 28, 0, 0)
    
    4
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    3
    >>> datetime.strptime(BS.font.contents[0].strip(), '%b %d')
    >>> datetime.datetime(1900, 7, 28, 0, 0)
    datetime.datetime(1900, 7, 28, 0, 0)
    
    6
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    8
    >>> datetime.strptime(BS.font.contents[0].strip(), '%b %d')
    >>> datetime.datetime(1900, 7, 28, 0, 0)
    datetime.datetime(1900, 7, 28, 0, 0)
    
    1
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    8
    import re
    rex = re.compile(r'<font.*?>(.*?)</font>',re.S|re.M)
    ...
    data = """<font face="ARIAL,HELVETICA" size="-2">  
    JUL 28         </font>"""
    
    match = rex.match(data)
    if match:
        text = match.groups()[0].strip()
    
    0
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    8
    >>> datetime.strptime(BS.font.contents[0].strip(), '%b %d')
    >>> datetime.datetime(1900, 7, 28, 0, 0)
    datetime.datetime(1900, 7, 28, 0, 0)
    
    1
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    8

    import re
    rex = re.compile(r'<font.*?>(.*?)</font>',re.S|re.M)
    ...
    data = """<font face="ARIAL,HELVETICA" size="-2">  
    JUL 28         </font>"""
    
    match = rex.match(data)
    if match:
        text = match.groups()[0].strip()
    
    5
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    3
    import re
    rex = re.compile(r'<font.*?>(.*?)</font>',re.S|re.M)
    ...
    data = """<font face="ARIAL,HELVETICA" size="-2">  
    JUL 28         </font>"""
    
    match = rex.match(data)
    if match:
        text = match.groups()[0].strip()
    
    7

    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    5
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    6
    from datetime import datetime
    date = datetime.strptime(text, "%b %d")
    
    0
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    8
    >>> from BeautifulSoup import BeautifulSoup as BSHTML
    >>> BS = BSHTML("""
    ... <font face="ARIAL,HELVETICA" size="-2">  
    ... JUL 28         </font>"""
    ... )
    >>> BS.font.contents[0].strip()
    u'JUL 28'
    
    9
    from datetime import datetime
    date = datetime.strptime(text, "%b %d")
    
    3

    Output:

    Chuỗi ban đầu là: GFG là tốt nhất. Tôi thích đọc CS từ nó. Các chuỗi được trích xuất: [‘GFG,’ tốt nhất, ‘Đọc CS,]
    The Strings extracted : [‘Gfg’, ‘Best’, ‘Reading CS’]

    Làm cách nào để có được một chuỗi HTML trong Python?

    Nếu bạn muốn đọc tệp HTML dưới dạng chuỗi, bạn cần chuyển đổi kết quả bằng phương thức giải mã () của Python:..
    Nhập Urllib. yêu cầu như r ..
    Trang = r. Urlopen ('https://google.com').
    In (trang. Đọc (). Decode ('UTF8')).

    Làm thế nào để bạn trích xuất một chuỗi từ văn bản trong Python?

    Bạn có thể trích xuất một chuỗi con trong phạm vi bắt đầustart <= x < stop with [start:step] . If start is omitted, the range is from the beginning, and if end is omitted, the range is to the end. You can also use negative values. If start > end , no error is raised and an empty character '' is extracted.

    Làm cách nào để lấy nội dung HTML trong Python?

    Gửi HTTP Nhận yêu cầu đến URL của trang web mà bạn muốn cạo, sẽ trả lời với nội dung HTML.Chúng tôi có thể làm điều này bằng cách sử dụng thư viện yêu cầu của Python.Tìm nạp và phân tích dữ liệu bằng cách sử dụng BeautifulSoup và duy trì dữ liệu trong một số cấu trúc dữ liệu như Dict hoặc Danh sách.

    Làm cách nào để nhận văn bản giữa các thẻ trong HTML?

    Hàm preg_match () là tùy chọn tốt nhất để trích xuất văn bản giữa các thẻ HTML với regex trong PHP.Nếu bạn muốn nhận nội dung giữa các thẻ, hãy sử dụng các biểu thức chính quy với hàm preg_match () trong PHP.Bạn cũng có thể trích xuất nội dung bên trong phần tử dựa trên tên lớp hoặc ID bằng PHP.preg_match() function is the best option to extract text between HTML tags with REGEX in PHP. If you want to get content between tags, use regular expressions with preg_match() function in PHP. You can also extract the content inside element based on class name or ID using PHP.