Python スクレイピング- htmlを解析 ④

前稿でサイトのソースをテキストファイルとしてDLしました。

これからそれを解析していきます。 いつかは欲しいデータが得られるでしょう。

① 解析用のライブラリー Beautiful Soup、parse をインストール

C:\Users\tak11>pip install beautifulsoup4
 Requirement already satisfied: beautifulsoup4 in c:\users\tak11\appdata\local\programs\python\python37\lib\site-packages (4.7.1)
Requirement already satisfied: soupsieve>=1.2 in c:\users\tak11\appdata\local\programs\python\python37\lib\site-packages (from beautifulsoup4) (1.9)

もし既にinstallしてあれば、上の表示が出ます。

解析用のライブラリー続き  -- 僕のPCでinstallするとコマンドプロンプトには次のように出ます。

C:\Users\tak11> pip install parse

Collecting parse
Downloading https://files.pythonhosted.org/packages/84/4d/5578a484f4a3ec5d4440a95731a104a96a12a6fb57385292d3e7b74d8f6d/parse-1.12.1.tar.gz
Building wheels for collected packages: parse
Building wheel for parse (setup.py) … done
Created wheel for parse: filename=parse-1.12.1-cp37-none-any.whl size=22345 sha256=7f0aa3503fa48f07b2a60ad01cb4e076ae6ea48cf9d6a666182622b2cc2f0888
Stored in directory: C:\Users\tak11\AppData\Local\pip\Cache\wheels\16\f1\d5\72f7e2c22ab3d106bb6f7d727552b5e027b832284f4704b106
Successfully built parse
Installing collected packages: parse
Successfully installed parse-1.12.1 <— これが出ればOK!

自分の環境で扱えるように解析、変換することをparseと云います。

また、parserとは、パースする処理をまとめたプログラムのことで、例えばオンラインでパースするツールはパーサーですし、自分でパースする関数を作ればその関数がパーサーということらしいです。

 

 

 

 

② kumasan.net/test2.html のソースをドウンロードするPython code

ライブラリーのrequests, BeautifulSpip, parseのinsatllを忘れないように注意!
それでは Go!

————————————————–

import requests
from bs4 import BeautifulSoup

# Webページを取得して解析する
load_url = “https://kumasan.net/test2.html”
html = requests.get(load_url)
soup = BeautifulSoup(html.content, “html.parser”)

# HTML全体を表示する
print(soup)

 

 

 

 

③ kumasan.net/test2.html のソースをドウンロードする

目的のサイト表示は下記です。

 

 

 

 

 

 

 

このサイトのソースをBeatifulSoupで表示させたのが次です。 htmlではなくtextになっております。

==========
<!DOCTYPE html>

<html>
<head>
<meta charset=”utf-8″/>
<title>Python2年生</title>
</head>
<body>
<div id=”chap1″>
<h2>第1章 Pythonでデータをダウンロード</h2>
<ol>
<li>スクレイピングってなに?</li>
<li>Pythonをインストールしてみよう</li>
<li>requestsでアクセスしてみよう</li>
</ol>
</div>
<div id=”chap2″>
<h2>第2章 HTMLを解析しよう</h2>
<ol>
<li>HTMLを解析してみよう</li>
<li>ニュースの最新記事一覧を取得してみよう</li>
<li>リンク一覧をファイルに書き出そう</li>
<li>画像を一括ダウンロードしよう</li>
</ol>
</div>
</body>
</html>
>>>

次回はこのソースからタグ(<>)を外し、必要なデータを取得します。

 

 

 

 

④ 必要なデータだけ取り込む

上記のhtmlよりすべてのliタグを検索して、その文字列のみを表示します。
codeは次です。

——————————————————-

import requests
from bs4 import BeautifulSoup

# Webページを取得して解析する
load_url = “https://kumasan.net//test2.html”
html = requests.get(load_url)
soup = BeautifulSoup(html.content, “html.parser”)

# すべてのliタグを検索して、その文字列を表示する
for element in soup.find_all(“li”):
print(element.text)

その結果はこうなりました。

===
スクレイピングってなに?
Pythonをインストールしてみよう
requestsでアクセスしてみよう
HTMLを解析してみよう
ニュースの最新記事一覧を取得してみよう
リンク一覧をファイルに書き出そう
画像を一括ダウンロードしよう
>>>

これで<li>で括られた文字列だけが抜き出されておりますね。 

 

 

 

 

 

 

 

 

Python別館
部品部屋(ウインドー)⑦ 終わり

簡単アプリ作成用の準備をします。まずウィジェット(部品とかパーツ)の貼付けと使い方が重要ですので、あ …

Python別館
Python別館 目次

2020年・部品部屋(window)・花の名前を覚えるクイズ・エラー対策1・Python検定試験準備 …

Python別館
花の名前を覚えるクイズ – 完成!

いろいろ花の写真など撮ってるけどなかなか名前を覚えらないのでので、クイズ形式にでもすれば覚えられるか …