【初心者のPython入門】Webスクレイピング〜テキスト抽出〜

00 728x364 - 【初心者のPython入門】Webスクレイピング〜テキスト抽出〜
今回は、特定のWebページから記事内テキストの抽出をWebスクレイピングを用いて行う記事となっています。
一度、特定のページ内のHTML情報を抽出する記事を投稿しているので、もしよければそちらも一読していただければと思います。
 
 
 
 

1. プログラム概要

 
 
今回の本プログラムは、特定のURLを指定してそのWebページから情報を抽出します。
実際にWeb情報を取得すると、HTMLタグ付きの状態で情報を抜き取るわけですが、無駄な部分を省くことを考慮して、記事内テキストを抽出していきます。
 
 
・モジュールのインポート
・特定URLからデータ取得
・取得データの解析
・解析データから記事内テキスト抽出
 
 
本プログラムは上記の流れで説明していきます。
 
 

2. 必要なモジュールのインストール

 
 
今回の本プログラムで利用するモジュールは、BeautifulSoupとrequestです。
 
 
BeautifulSoupモジュールは、pythonのライブラリの一つでスクレイピングに特化した機能を備えています。
スクレイピングは、端的に言うと取得したHTMLから任意の情報を抽出する技術を指します。
 
 
requestモジュールは、HTTP通信を行うためのライブラリに特化した機能を備えています。
WebサーとのダウンロードやRESTAPI等の利用が比較的簡単に行うことができます。
このモジュールを利用して特定URLに対してリクエストを行い、結果を取得します。
 
 
 
 

3. urlopen()でデータを取得する

 
 
 
 
ここでは、まず任意の特定URLを変数urlに代入して利用します。
req.urlopen()を利用して、特定URLから結果を取得し、変数resに格納しています。
 
 

4. BeautifulSoup()で取得データを解析

 
 
 
 
ここでは、先ほど取得したデータを格納した変数resを利用します。
BeautifulSoupモジュールを利用して、取得データをHTML情報を解析し、そのデータを変数soupに格納しています。
 
 

5. 任意のデータを抽出する

 
 
 
 
ここでは、変数soupの解析後データを利用して任意のデータを抽出します。
タイトルと記事内テキストを囲っているHTMLタグのみのデータを取り出していきます。
 
 
この時、解析で利用したBeautifulsoupのメソッドとして、find()メソッドとfind_all()メソッドを利用していきます。
 
 
BeautifulSoupモジュールのfind()とfind_all()は、このモジュールの中でも最も利用するメソッドでしょう。
これらを利用することで、HTML情報から様々な属性に基づいて、目的のタグやタグのリストを見つけ出すことができます。
 
 
メソッドを利用して抽出したデータをfor文にて、ターミナル上で出力するコードを追加しています。
 
 
 
 

6. 出力結果

 
 
python 17 1 - 【初心者のPython入門】Webスクレイピング〜テキスト抽出〜
 
 
特定URLをうまく利用することで、サイト内のリンクの記事などを巡回してデータ取得するクローリングにも活用できるかと思います。
 
 
 
Pythonチュートリアル公開中です。

 

ABOUTこの記事をかいた人

sugi

大学卒業後、IT企業に就職を果たす。システム開発・人工知能に触れながら大手企業と業務をこなす。2年半後脱サラし、現在フリーランス活動中。 2019年2月から起業する予定。 自社サービス及び製品を開発し、売り上げを立てている。