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
Reviewed by noname needed
on
May 25, 2018
Rating:
No comments: