Python - czytanie stron HTML

biblioteka znana jako beautifulsoup. Korzystając z tej biblioteki, możemy wyszukiwać wartości tagów html i uzyskiwać konkretne dane, takie jak tytuł strony i lista nagłówków na stronie.

Zainstaluj Beautifulsoup

Użyj menedżera pakietów Anaconda, aby zainstalować wymagany pakiet i jego pakiety zależne.

conda install Beaustifulsoap

Czytanie pliku HTML

W poniższym przykładzie wysyłamy żądanie do adresu URL, który ma zostać załadowany do środowiska Pythona. Następnie użyj parametru parsera html, aby odczytać cały plik html. Następnie drukujemy kilka pierwszych wierszy strony html.

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])

Kiedy wykonujemy powyższy kod, daje on następujący wynik.

<!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>

Wyodrębnianie wartości tagu

Możemy wyodrębnić wartość tagu z pierwszego wystąpienia tagu, używając następującego kodu.

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)

Kiedy wykonujemy powyższy kod, daje on następujący wynik.

Python Overview
Python Overview
None
Python is Interpreted

Wyodrębnianie wszystkich tagów

Możemy wyodrębnić wartość tagu ze wszystkich instancji tagu przy użyciu następującego kodu.

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)

Kiedy wykonujemy powyższy kod, daje on następujący wynik.

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