BeautifulSoup - Hal yang sering digunakan dalam Web Scraping



Untuk contoh dibawah digunakan file html yang digunakan pada artikel sebelumnya.

Parameter dalam find dapat berupa string, regex, list atau fungsi. Berikut contoh singkat:

String
soup.find_all('b')
# [<b>The Dormouse's story</b>]

Regular Expression
import re
for tag in soup.find_all(re.compile("^b")):
    print(tag.name)
# body
# b

List atau True. Parameter True akan mengambil semua tag, tanpa teks string.
soup.find_all(["a", "b"])
# [<b>The Dormouse's story</b>,
#  <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>,
#  <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>,
#  <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]

Fungsi contoh fungsi adalah tag yang memiliki class tapi tidak memiliki id.
def has_class_but_no_id(tag):
    return tag.has_attr('class') and not tag.has_attr('id')

soup.find_all(has_class_but_no_id)
# [<p class="title"><b>The Dormouse's story</b></p>,
#  <p class="story">Once upon a time there were...</p>,
#  <p class="story">...</p>]

Hal yang sering dilakukan dalam web scraping

  • Retrieve by id dari suatu tag, gunakan .find("id").
  • Retrieve semua link dapat digunakan perintah .find_all('a')
  • Retrieve tag dengan class tertentu


>>> soup.find(id="link3")
<a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>

>>> for link in soup.find_all('a'):
...     print(link.get('href'))
...
http://example.com/elsie
http://example.com/lacie
http://example.com/tillie
>>> soup.find_all("a", class_="sister")
[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>, 
<a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>, 
<a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]

Hal lain yang sering dilakukan adalah mengekstrak seluruh teks dari sebuah html

>>> print(soup.get_text())
The Dormouse's story

The Dormouse's story
Once upon a time there were three little sisters; and their names were
Elsie,
Lacie and
Tillie;
and they lived at the bottom of a well.
...
BeautifulSoup - Hal yang sering digunakan dalam Web Scraping BeautifulSoup - Hal yang sering digunakan dalam Web Scraping Reviewed by noname needed on May 25, 2018 Rating: 5

No comments:

Powered by Blogger.