Pythonで、取得したWebページ(HTML)から情報を抽出します。
これにより、HTMLから必要な情報のみを抽出し、使うことができます。
Web(HTML)から情報抽出には、lxmlを使用します。
lxmlのインストール
lxmlインストールする前に、環境を整えます。
$ sudo apt-get install libxml2-dev libxslt-dev python-dev
lxmlのインストールには、pipを使用します。
以下のコマンドを実行するだけです。
$ sudo pip install lxml
lxmlのサンプルプログラム
requestsでWeb(HTML)を取得してから,lxmlを使用して情報を抽出します。
lxml.html.fromstringでrootを作成します。rootは、HTMLElementクラスのインスタンスです。 rootを作成することができたら、プログラムで操作し、必要な情報だけを抽出します。
HTMLからテキストを抽出するサンプルは以下になります。
#!/usr/bin/env python # -*- coding: utf-8 -*- import requests import lxml.html URL = "http://make.bcde.jp/category/1/" #Webページ(HTML)の取得 req = requests.get(URL) root = lxml.html.fromstring(req.text) #<a href=""></a>によるリンクを抽出する anchors = root.xpath('//a') for anchor in anchors: print anchor.attrib['href'] #h1の中身を抽出する h1s = root.xpath('//h1') for h1 in h1s: print h1.text #idを指定して、タグに直接囲われたテキストを抽出 content1 = root.get_element_by_id('content1').text print content1 #idを指定して、タグの中のテキストをすべて抽出 content = root.get_element_by_id('content').text_content() print content