Python - HTML Sayfalarını Okuma
güzel grup olarak bilinen kütüphane. Bu kütüphaneyi kullanarak html etiketlerinin değerlerini arayabilir ve sayfanın başlığı ve sayfadaki başlık listesi gibi belirli verileri alabiliriz.
Beautifulsoup'u yükleyin
Gerekli paketi ve bağımlı paketlerini kurmak için Anaconda paket yöneticisini kullanın.
conda install Beaustifulsoap
HTML dosyasını okumak
Aşağıdaki örnekte python ortamına yüklenecek bir url'ye talepte bulunuyoruz. Daha sonra html dosyasının tamamını okumak için html ayrıştırıcı parametresini kullanın. Daha sonra html sayfasının ilk birkaç satırını yazdırıyoruz.
import urllib2
from bs4 import BeautifulSoup
# Fetch the html file
response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm')
html_doc = response.read()
# Parse the html file
soup = BeautifulSoup(html_doc, 'html.parser')
# Format the parsed html file
strhtm = soup.prettify()
# Print the first few characters
print (strhtm[:225])
Yukarıdaki kodu çalıştırdığımızda aşağıdaki sonucu verir.
<!DOCTYPE html>
<!--[if IE 8]><html class="ie ie8"> <![endif]-->
<!--[if IE 9]><html class="ie ie9"> <![endif]-->
<!--[if gt IE 9]><!-->
<html>
<!--<![endif]-->
<head>
<!-- Basic -->
<meta charset="utf-8"/>
<title>
Etiket Değerini Çıkarma
Aşağıdaki kodu kullanarak etiketin ilk örneğinden etiket değeri çıkarabiliriz.
import urllib2
from bs4 import BeautifulSoup
response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm')
html_doc = response.read()
soup = BeautifulSoup(html_doc, 'html.parser')
print (soup.title)
print(soup.title.string)
print(soup.a.string)
print(soup.b.string)
Yukarıdaki kodu çalıştırdığımızda aşağıdaki sonucu verir.
Python Overview
Python Overview
None
Python is Interpreted
Tüm Etiketleri Çıkarma
Aşağıdaki kodu kullanarak bir etiketin tüm örneklerinden etiket değeri çıkarabiliriz.
import urllib2
from bs4 import BeautifulSoup
response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm')
html_doc = response.read()
soup = BeautifulSoup(html_doc, 'html.parser')
for x in soup.find_all('b'): print(x.string)
Yukarıdaki kodu çalıştırdığımızda aşağıdaki sonucu verir.
Python is Interpreted
Python is Interactive
Python is Object-Oriented
Python is a Beginner's Language
Easy-to-learn
Easy-to-read
Easy-to-maintain
A broad standard library
Interactive Mode
Portable
Extendable
Databases
GUI Programming
Scalable