Hướng dẫn html to text python beautifulsoup - html để nhắn tin với python beautifulsoup

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

Lưu bài viết

  • Đọc
  • Bàn luận
  • Cải thiện bài viết

    Lưu bài viết

    Đọc

    Bàn luận

    Python3

    Nhiều lần trong khi làm việc với tự động hóa web, chúng tôi cần chuyển đổi mã HTML thành văn bản. Điều này có thể được thực hiện bằng cách sử dụng đẹp. Mô -đun này cung cấp hàm get_text () lấy HTML làm đầu vào và trả về văn bản làm đầu ra.

    Ví dụ 1:

    type(soup)
    # bs4.BeautifulSoup
    
    7
    type(soup)
    # bs4.BeautifulSoup
    
    8
    type(soup)
    # bs4.BeautifulSoup
    
    9
    type(soup)
    # bs4.BeautifulSoup
    
    3
    soup.text
    # 'Hello World'
    
    1
    type(soup)
    # bs4.BeautifulSoup
    
    3
    soup.text
    # 'Hello World'
    
    3

    from bs4 import BeautifulSoup
    htmltxt = "<p>Hello World</p>"
    soup = BeautifulSoup(htmltxt, 'lxml')
    
    6
    from bs4 import BeautifulSoup
    htmltxt = "<p>Hello World</p>"
    soup = BeautifulSoup(htmltxt, 'lxml')
    
    7
    from bs4 import BeautifulSoup
    htmltxt = "<p>Hello World</p>"
    soup = BeautifulSoup(htmltxt, 'lxml')
    
    8
    from bs4 import BeautifulSoup
    htmltxt = "<p>Hello World</p>"
    soup = BeautifulSoup(htmltxt, 'lxml')
    
    9

    soup.text
    # 'Hello World'
    
    7
    soup.text
    # 'Hello World'
    
    8

    Output:

    Section BeautifulSoupExample 1

    type(soup)
    # bs4.BeautifulSoup
    
    0
    type(soup)
    # bs4.BeautifulSoup
    
    1
    type(soup)
    # bs4.BeautifulSoup
    
    2
    type(soup)
    # bs4.BeautifulSoup
    
    3
    type(soup)
    # bs4.BeautifulSoup
    
    4
    type(soup)
    # bs4.BeautifulSoup
    
    3
    type(soup)
    # bs4.BeautifulSoup
    
    6
    This example extracts data from the live website then converts it into text. In this example, we used the request module from urllib library to read HTML data from URL.

    Python3

    Output:

    Hướng dẫn html to text python beautifulsoup - html để nhắn tin với python beautifulsoup


    Chuyển đổi văn bản HTML thành đối tượng dữ liệu

    Một trang web chỉ là một tệp văn bản ở định dạng HTML. Và văn bản định dạng HTML cuối cùng chỉ là văn bản. Vì vậy, hãy viết HTML của riêng chúng tôi từ đầu, mà không phải lo lắng về "web":

    htmltxt = "<p>Hello World</p>"
    

    Điểm phân tích HTML là có thể trích xuất hiệu quả các giá trị văn bản trong tài liệu HTML-ví dụ:

    soup.text
    # 'Hello World'
    
    9 - Ngoài đánh dấu HTML - ví dụ:
    soup = BeautifulSoup("""<h2>Hello</h2><p>World</p>""", 'lxml')
    soup.text
    # 'HelloWorld'
    
    0.

    Chúng tôi sẽ bắt đầu bằng cách sử dụng Soup tuyệt đẹp, một trong những thư viện phân tích HTML phổ biến nhất của Python.

    Nhập chức năng Constructor BeautifulSoup

    Đây là tuyên bố nhập khẩu tiêu chuẩn để sử dụng súp đẹp:

    from bs4 import BeautifulSoup
    

    Hàm trình xây dựng

    from bs4 import BeautifulSoup
    htmltxt = "<p>Hello World</p>"
    soup = BeautifulSoup(htmltxt, 'lxml')
    
    9 có hai đối số chuỗi:

    1. Chuỗi HTML được phân tích cú pháp.
    2. Tùy chọn, tên của một trình phân tích cú pháp. Không cần vào lý do tại sao có nhiều triển khai phân tích cú pháp HTML, cho mục đích của chúng tôi, chúng tôi sẽ luôn sử dụng
      soup = BeautifulSoup("""<h2>Hello</h2><p>World</p>""", 'lxml')
      soup.text
      # 'HelloWorld'
      
      2.parser. Without getting into the background of why there are multiple implementations of HTML parsing, for our purposes, we will always be using
      soup = BeautifulSoup("""<h2>Hello</h2><p>World</p>""", 'lxml')
      soup.text
      # 'HelloWorld'
      
      2.

    Vì vậy, hãy phân tích một số HTML:

    from bs4 import BeautifulSoup
    htmltxt = "<p>Hello World</p>"
    soup = BeautifulSoup(htmltxt, 'lxml')
    

    Đối tượng "súp"

    soup = BeautifulSoup("""<h2>Hello</h2><p>World</p>""", 'lxml')
    soup.text
    # 'HelloWorld'
    
    3 là gì? Như mọi khi, hãy sử dụng phương thức
    soup = BeautifulSoup("""<h2>Hello</h2><p>World</p>""", 'lxml')
    soup.text
    # 'HelloWorld'
    
    4 để kiểm tra một đối tượng không xác định:

    type(soup)
    # bs4.BeautifulSoup
    

    OK, ít nhất chúng ta biết rằng

    soup = BeautifulSoup("""<h2>Hello</h2><p>World</p>""", 'lxml')
    soup.text
    # 'HelloWorld'
    
    3 không chỉ là văn bản đơn giản. Câu trả lời phức tạp hơn là
    soup = BeautifulSoup("""<h2>Hello</h2><p>World</p>""", 'lxml')
    soup.text
    # 'HelloWorld'
    
    3 hiện là một đối tượng có độ phức tạp và phương pháp hơn nhiều so với chỉ là một chuỗi python. Tuy nhiên, sự phức tạp này đáng để đi sâu vào, bởi vì đối tượng loại ____ 39 có các phương pháp cụ thể được thiết kế để làm việc hiệu quả với HTML.

    Đối tượng

    from bs4 import BeautifulSoup
    htmltxt = "<p>Hello World</p>"
    soup = BeautifulSoup(htmltxt, 'lxml')
    
    9 có thuộc tính
    soup = BeautifulSoup("""<h2>Hello</h2><p>World</p>""", 'lxml')
    soup.text
    # 'HelloWorld'
    
    9 trả về văn bản đơn giản của chuỗi HTML sans các thẻ. Với món súp đơn giản của chúng tôi là
    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>"""
    
    soup = BeautifulSoup(mytxt, 'lxml')
    soup.text
    # 'Hello World\nThis is a link'
    
    0, thuộc tính
    soup = BeautifulSoup("""<h2>Hello</h2><p>World</p>""", 'lxml')
    soup.text
    # 'HelloWorld'
    
    9 trả về:

    soup.text
    # 'Hello World'
    

    Hãy thử một chuỗi HTML phức tạp hơn:

    soup = BeautifulSoup("""<h2>Hello</h2><p>World</p>""", 'lxml')
    soup.text
    # 'HelloWorld'
    

    Và đây là chuỗi HTML chứa URL:

    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>"""
    
    soup = BeautifulSoup(mytxt, 'lxml')
    soup.text
    # 'Hello World\nThis is a link'
    

    Về cơ bản, thuộc tính

    soup = BeautifulSoup("""<h2>Hello</h2><p>World</p>""", 'lxml')
    soup.text
    # 'HelloWorld'
    
    9 của ____ 39 sẽ trả về một chuỗi bị tước của bất kỳ thẻ HTML và siêu dữ liệu nào.

    Nói chung, chúng tôi không muốn chỉ nhổ tất cả các văn bản được đánh dấu thẻ của một tài liệu HTML. Thông thường, chúng tôi muốn trích xuất văn bản từ một vài yếu tố cụ thể.

    Hãy sử dụng lại chuỗi HTML "phức tạp" của chúng tôi từ trên:

    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>
    """
    

    Nó chứa 3 thẻ HTML:

    1. Một tiêu đề,
      mytxt = """
      <h2>Hello World</h2>
      <p>This is a <a href="http://example.com">link</a></p>"""
      
      soup = BeautifulSoup(mytxt, 'lxml')
      soup.text
      # 'Hello World\nThis is a link'
      
      5
    2. Một đoạn văn,
      mytxt = """
      <h2>Hello World</h2>
      <p>This is a <a href="http://example.com">link</a></p>"""
      
      soup = BeautifulSoup(mytxt, 'lxml')
      soup.text
      # 'Hello World\nThis is a link'
      
      6
    3. Trong đoạn đó, một siêu liên kết,
      mytxt = """
      <h2>Hello World</h2>
      <p>This is a <a href="http://example.com">link</a></p>"""
      
      soup = BeautifulSoup(mytxt, 'lxml')
      soup.text
      # 'Hello World\nThis is a link'
      
      7

    Để tìm phần tử đầu tiên theo thẻ, chúng tôi sử dụng phương thức

    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>"""
    
    soup = BeautifulSoup(mytxt, 'lxml')
    soup.text
    # 'Hello World\nThis is a link'
    
    4 của đối tượng
    from bs4 import BeautifulSoup
    htmltxt = "<p>Hello World</p>"
    soup = BeautifulSoup(htmltxt, 'lxml')
    
    9, lấy tên của TAG làm đối số đầu tiên:

    soup = BeautifulSoup(mytxt, 'lxml')
    soup.find('a')
    # <a href="http://example.com">link</a>
    

    Một lần nữa, sử dụng

    soup = BeautifulSoup("""<h2>Hello</h2><p>World</p>""", 'lxml')
    soup.text
    # 'HelloWorld'
    
    4 để tìm ra chính xác những gì đang được trả lại:

    htmltxt = "<p>Hello World</p>"
    
    0

    Sự khác biệt giữa đối tượng

    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>
    """
    
    1 và
    from bs4 import BeautifulSoup
    htmltxt = "<p>Hello World</p>"
    soup = BeautifulSoup(htmltxt, 'lxml')
    
    9 là gì? Tôi không thực sự biết, nhưng điều quan trọng đối với chúng tôi là sự tương đồng của họ. Đối tượng
    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>
    """
    
    1 cũng có thuộc tính
    soup = BeautifulSoup("""<h2>Hello</h2><p>World</p>""", 'lxml')
    soup.text
    # 'HelloWorld'
    
    9:

    htmltxt = "<p>Hello World</p>"
    
    1

    Hãy thử

    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>"""
    
    soup = BeautifulSoup(mytxt, 'lxml')
    soup.text
    # 'Hello World\nThis is a link'
    
    4 với các thẻ khác:

    htmltxt = "<p>Hello World</p>"
    
    2

    Đối với các cuộc họp báo của Nhà Trắng-và các bài tập phân tích HTML khác-chúng tôi muốn nhiều hơn là văn bản được hiển thị của HTML. Chúng tôi sẽ muốn một số thuộc tính meta của HTML, chẳng hạn như các giá trị

    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>
    """
    
    6 cho các thẻ liên kết.

    Đối tượng

    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>
    """
    
    1 có thuộc tính
    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>
    """
    
    8, trả về một từ điển của các cặp giá trị khóa. Hãy bắt đầu từ đầu:

    htmltxt = "<p>Hello World</p>"
    
    3

    Để trích xuất giá trị của thuộc tính

    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>
    """
    
    6 từ đối tượng
    soup = BeautifulSoup(mytxt, 'lxml')
    soup.find('a')
    # <a href="http://example.com">link</a>
    
    0, hãy sử dụng
    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>
    """
    
    8:

    htmltxt = "<p>Hello World</p>"
    
    4

    Còn các thẻ khác trong đoạn trích HTML của chúng tôi thì sao? Họ không có thuộc tính và do đó sẽ có từ điển trống cho các thuộc tính

    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>
    """
    
    8 của họ:

    htmltxt = "<p>Hello World</p>"
    
    5

    OK, chúng ta hãy đẩy mạnh sự phức tạp; Điều gì sẽ xảy ra nếu có nhiều thẻ

    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>"""
    
    soup = BeautifulSoup(mytxt, 'lxml')
    soup.text
    # 'Hello World\nThis is a link'
    
    7 mà chúng tôi muốn trích xuất
    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>
    """
    
    6 và giá trị văn bản? Chúng tôi sử dụng phương thức
    soup = BeautifulSoup(mytxt, 'lxml')
    soup.find('a')
    # <a href="http://example.com">link</a>
    
    6 trả về một bộ sưu tập các yếu tố:

    htmltxt = "<p>Hello World</p>"
    
    6

    Một

    soup = BeautifulSoup(mytxt, 'lxml')
    soup.find('a')
    # <a href="http://example.com">link</a>
    
    7 hoạt động rất giống các loại trình tự Python khác, chẳng hạn như danh sách:list:

    htmltxt = "<p>Hello World</p>"
    
    7

    Tuy nhiên, hãy cẩn thận để không đối xử với

    soup = BeautifulSoup(mytxt, 'lxml')
    soup.find('a')
    # <a href="http://example.com">link</a>
    
    7 như thể đó là một
    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>
    """
    
    1 - hãy cố gắng hiểu lý do tại sao những điều sau đây không có ý nghĩa nhiều (không bao giờ dẫn đến lỗi):

    htmltxt = "<p>Hello World</p>"
    
    8

    Các thuộc tính HTML tồn tại ở cấp độ mỗi thẻ-bạn mong đợi nó sẽ trả lại cho một bộ sưu tập thẻ? Nhà thiết kế của Beautiful không có ý tưởng, do đó, thông báo lỗi.

    Nếu những gì bạn muốn là giá trị

    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>
    """
    
    6 cho mỗi thẻ, thì bạn phải làm theo cách lỗi thời với vòng lặp:

    htmltxt = "<p>Hello World</p>"
    
    9

    Tìm các yếu tố lồng nhau

    Điều gì xảy ra khi có nhiều hơn một "nhóm" thẻ liên kết mà chúng tôi muốn? Trong đoạn trích bên dưới, các thẻ

    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>"""
    
    soup = BeautifulSoup(mytxt, 'lxml')
    soup.text
    # 'Hello World\nThis is a link'
    
    7 mà chúng tôi quan tâm được lồng trong các thẻ
    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>"""
    
    soup = BeautifulSoup(mytxt, 'lxml')
    soup.text
    # 'Hello World\nThis is a link'
    
    5:

    from bs4 import BeautifulSoup
    
    0

    Đầu tiên, chúng ta có thể thu thập tất cả các thẻ

    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>"""
    
    soup = BeautifulSoup(mytxt, 'lxml')
    soup.text
    # 'Hello World\nThis is a link'
    
    5 bằng
    soup = BeautifulSoup(mytxt, 'lxml')
    soup.find('a')
    # <a href="http://example.com">link</a>
    
    6:

    from bs4 import BeautifulSoup
    
    1

    Mỗi thành viên của

    htmltxt = "<p>Hello World</p>"
    
    05 là đối tượng
    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>
    """
    
    1 và mỗi đối tượng
    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>
    """
    
    1 có phương thức
    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>"""
    
    soup = BeautifulSoup(mytxt, 'lxml')
    soup.text
    # 'Hello World\nThis is a link'
    
    4 mà chúng ta có thể sử dụng để chọn thẻ
    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>"""
    
    soup = BeautifulSoup(mytxt, 'lxml')
    soup.text
    # 'Hello World\nThis is a link'
    
    7 lồng nhau:

    from bs4 import BeautifulSoup
    
    2

    Hoặc, chính xác hơn:

    from bs4 import BeautifulSoup
    
    3

    Thế giới thực ví dụ.com

    Phân tích cú pháp HTML được xây dựng bằng tay của chúng ta không phải là nhiều niềm vui. Vì vậy, hãy lấy một tài liệu HTML "thực" từ web.

    Phần này nên quen thuộc:

    from bs4 import BeautifulSoup
    
    4

    Cho dù nội dung của

    htmltxt = "<p>Hello World</p>"
    
    10 là một chuỗi được xây dựng bằng tay hay thứ gì đó xuất phát từ web không quan trọng khi chúng tôi làm việc với súp đẹp-chúng tôi chỉ quan tâm đến việc chuyển đổi một chuỗi thành một đối tượng đẹp:

    from bs4 import BeautifulSoup
    
    5

    Nhìn vào trang web tại http://www.example.com/. Kiểm tra nguồn của nó. Sau đó, xem bạn có thể viết mã Python trích xuất không:

    1. Số lượng thẻ
      mytxt = """
      <h2>Hello World</h2>
      <p>This is a <a href="http://example.com">link</a></p>"""
      
      soup = BeautifulSoup(mytxt, 'lxml')
      soup.text
      # 'Hello World\nThis is a link'
      
      6.
    2. Văn bản trong thẻ
      mytxt = """
      <h2>Hello World</h2>
      <p>This is a <a href="http://example.com">link</a></p>"""
      
      soup = BeautifulSoup(mytxt, 'lxml')
      soup.text
      # 'Hello World\nThis is a link'
      
      6 đầu tiên
    3. Độ dài của văn bản của thẻ
      mytxt = """
      <h2>Hello World</h2>
      <p>This is a <a href="http://example.com">link</a></p>"""
      
      soup = BeautifulSoup(mytxt, 'lxml')
      soup.text
      # 'Hello World\nThis is a link'
      
      5 đầu tiên
    4. Văn bản của thẻ
      mytxt = """
      <h2>Hello World</h2>
      <p>This is a <a href="http://example.com">link</a></p>"""
      
      soup = BeautifulSoup(mytxt, 'lxml')
      soup.text
      # 'Hello World\nThis is a link'
      
      7 đầu tiên (và duy nhất)
    5. mytxt = """
      <h2>Hello World</h2>
      <p>This is a <a href="http://example.com">link</a></p>
      """
      
      6 của thẻ
      mytxt = """
      <h2>Hello World</h2>
      <p>This is a <a href="http://example.com">link</a></p>"""
      
      soup = BeautifulSoup(mytxt, 'lxml')
      soup.text
      # 'Hello World\nThis is a link'
      
      7 đầu tiên

    Câu trả lời của tôi dưới đây:

    from bs4 import BeautifulSoup
    
    6

    Bây giờ xem bạn có thể trích xuất từng URL thông báo báo chí từ mẫu báo chí của Nhà Trắng mẫu này không:

    http://stash.compjour.org/samples/webpages/whitehouse-press-briefings-page-50.html

    Hướng dẫn html to text python beautifulsoup - html để nhắn tin với python beautifulsoup

    Kiểm tra nguồn HTML phía sau mỗi thẻ thông cáo báo chí

    Hãy nhìn vào url đầu tiên đó.

    Văn bản của nó là:text is:

    htmltxt = "<p>Hello World</p>"
    
    17

    Giá trị

    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>
    """
    
    6 của nó là:

    htmltxt = "<p>Hello World</p>"
    
    19

    Nếu bạn kiểm tra nguồn và tìm kiếm thẻ cụ thể, bạn sẽ tìm thấy HTML này:

    from bs4 import BeautifulSoup
    
    7

    Đối với trang này, một liên kết không chỉ là thẻ

    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>"""
    
    soup = BeautifulSoup(mytxt, 'lxml')
    soup.text
    # 'Hello World\nThis is a link'
    
    7; Nó được lồng trong một số thẻ khác. Dưới đây là phiên bản được định dạng khá của một liên kết đó và các thẻ cha mẹ của nó:

    from bs4 import BeautifulSoup
    
    8

    Xử lý trang họp báo như súp

    Hãy biến HTML phức tạp này thành súp. Xem nếu bạn có thể nhớ các bước để tải xuống trang web và chuyển đổi nó thành một đối tượng súp đủ tốt để nhập chúng bằng bộ nhớ:

    from bs4 import BeautifulSoup
    
    9

    Có 10 cuộc họp báo trên mỗi trang, nhưng rõ ràng là có hơn 10 thẻ liên kết. Đủ dễ dàng để tìm hiểu:

    from bs4 import BeautifulSoup
    htmltxt = "<p>Hello World</p>"
    soup = BeautifulSoup(htmltxt, 'lxml')
    
    0

    Vậy làm thế nào để chúng ta chỉ nhận được các URL cho các cuộc họp báo thực tế? Từ HTML mà chúng tôi đã kiểm tra trước đó, chúng tôi muốn các thẻ

    mytxt = """
    <h2>Hello World</h2>
    <p>This is a <a href="http://example.com">link</a></p>"""
    
    soup = BeautifulSoup(mytxt, 'lxml')
    soup.text
    # 'Hello World\nThis is a link'
    
    7 được lồng trong các thẻ
    htmltxt = "<p>Hello World</p>"
    
    22.

    Vì vậy, hãy tìm và đếm số lượng thẻ

    htmltxt = "<p>Hello World</p>"
    
    23:

    from bs4 import BeautifulSoup
    htmltxt = "<p>Hello World</p>"
    soup = BeautifulSoup(htmltxt, 'lxml')
    
    1

    Này, thật là một sự trùng hợp ngẫu nhiên - có chính xác là nhiều thẻ

    htmltxt = "<p>Hello World</p>"
    
    23 như các liên kết để giao ban báo chí. Đây chỉ là một kết quả may mắn của cách các WebDevs của Nhà Trắng quyết định xây dựng trang này.

    Dưới đây là một cách để trích xuất tất cả các URL của các thẻ liên kết lồng nhau vào danh sách:

    from bs4 import BeautifulSoup
    htmltxt = "<p>Hello World</p>"
    soup = BeautifulSoup(htmltxt, 'lxml')
    
    2

    Đây là một ngắn gọn hơn - mặc dù khó đọc hơn - phiên bản:

    from bs4 import BeautifulSoup
    htmltxt = "<p>Hello World</p>"
    soup = BeautifulSoup(htmltxt, 'lxml')
    
    3

    Dù bằng cách nào, đây là nội dung của

    htmltxt = "<p>Hello World</p>"
    
    25:

    from bs4 import BeautifulSoup
    htmltxt = "<p>Hello World</p>"
    soup = BeautifulSoup(htmltxt, 'lxml')
    
    4

    Tất cả cùng nhau

    Để trích xuất các URL từ trang web mẫu đóng hộp, đây là tất cả các mã:

    from bs4 import BeautifulSoup
    htmltxt = "<p>Hello World</p>"
    soup = BeautifulSoup(htmltxt, 'lxml')
    
    5

    Bây giờ tất cả những gì chúng ta phải làm là lặp lại điều này cho mỗi trang của danh sách giao ban báo chí