Beautiful Soup - Parsing hanya bagian dari dokumen
Ada beberapa situasi di mana Anda ingin mengekstrak jenis informasi tertentu (hanya tag <a>) menggunakan Beautifulsoup4. Kelas SoupStrainer di Beautifulsoup memungkinkan Anda mengurai hanya bagian tertentu dari dokumen yang masuk.
Salah satu caranya adalah dengan membuat SoupStrainer dan meneruskannya ke konstruktor Beautifulsoup4 sebagai argumen parse_only.
SoupStrainer
SoupStrainer memberi tahu BeautifulSoup bagian apa yang diekstrak, dan pohon parse hanya terdiri dari elemen ini. Jika Anda mempersempit informasi yang dibutuhkan ke bagian tertentu dari HTML, ini akan mempercepat hasil pencarian Anda.
product = SoupStrainer('div',{'id': 'products_list'})
soup = BeautifulSoup(html,parse_only=product)
Baris kode di atas hanya akan mengurai judul dari situs produk, yang mungkin berada di dalam bidang tag.
Demikian pula, seperti di atas, kita dapat menggunakan objek soupStrainer lainnya, untuk mengurai informasi tertentu dari tag HTML. Berikut adalah beberapa contohnya -
from bs4 import BeautifulSoup, SoupStrainer
#Only "a" tags
only_a_tags = SoupStrainer("a")
#Will parse only the below mentioned "ids".
parse_only = SoupStrainer(id=["first", "third", "my_unique_id"])
soup = BeautifulSoup(my_document, "html.parser", parse_only=parse_only)
#parse only where string length is less than 10
def is_short_string(string):
return len(string) < 10
only_short_strings =SoupStrainer(string=is_short_string)