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