スクレイピングとは、ウェブサイトのHTMLから必要なデータを取得する事を言います。
「習うより慣れろ」のことわざ通り早速試してみましょう。
手始めに今回の目的の為に臨時に作った自分のサイトkumasan.netをスクレイピングしてみましょう。 誰でも他人・他社のソースを見れますが、ダウンロードするときは礼節をわきまえて行う必要があります。 サーバーへの負荷や悪用をふせぐ意味で、サイトによってはscrapingをお断りしているところもあります。
—————————————————————
① kumasan.netのhtmlソースをDLする
import requests #最初に外部ライブラリーのrequestsをinstallしておきます。
# Webページを取得する
url = “https://kumasan.net”
response = requests.get(url)
# 文字化けしないようにする
response.encoding = response.apparent_encoding
#残念ながら日本語は文字化けしてましたので、英文にしました。
# 取得した文字列データを表示する
print(response.text)
——————————————————————-
<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<title>Let’s Enjoy Python! </title>
</head>
<body>
<h2>Chapter1 download data</h2>
<ol>
<li>What’s scraping?</li>
<li>Install Python</li>
<li>Accsess Kumasan.net</li>
</ol>
</body>
</html>
Pythonと違いintendはなくても動作には変わりません。 見栄え・読み易さだけの問題です。
そして上のhtmlで書いたページkumasan.netは、次のように見えるはずです。
Chapter1 download data
- What’s scraping?
- Install Python
- Accsess Kumasan.net
次は日本語の文字化けがどこで起きているのかを探して対策を撮ります。
② 文字化け対策
レントしているXserverにloginし、kumasan.net内のindex.htmlを見ると、ここで日本語だけが文字化けしている。
と云うことはFTPでuploadしたときに既に文字化けしているということになります。
これはサーバーの問題ではなくFTPの設定の問題と推定し、FTPの設定を確認したところ、uploadの所がUTF-8であるはずがSJISになっていた。
これでは文字化けするのが当たり前!ということで、そこをUTF-8に修正して、再度index.htmlをupload—>問題解決。
問題解決後kumasan.netをみると;
——————————————
Chapter1 download data
1.スクレイピングとは何?
2.Pythonをインストールしよう
3.Kumasan.netにアクセスしよう
4.そこにあるhtmlをスクレイプしてみよう
—————————————–
と表示されました。 文字化けは直っております。
分かってみれば当たり前で、最初に気が付かなければならないことでした。 時々エラーに行き当たることが技術レベルの維持には必要なのかもしれません。 やれやれでした。
次回はサイトからhtmlをfileとして保存する方法を試します。
③ kumsan.netのindex.htmlをファイルとして取り込む
import requests
# Webページを取得する
url = “https://kumasan.net/index.html”
response = requests.get(url)
# 文字化けしないようにする
response.encoding = response.apparent_encoding
# ファイルを書き込みモードで開いて
filename = “index(kumasan.net).txt”
with open(filename, mode=”w”) as f:
# ネットから取得した読み込んだデータを書き込む
f.write(response.text)
次のようなhtml fileがテキストファイルとして自分のパソコンに取り込まれる。
<!DOCTYPE html>
<html lang=”ja”>
<head>
<meta http-equiv=”content-type” charset=”utf-8″>
<title>Let’s Enjoy Python! </title>
</head>
<body>
<h2>Chapter1 download data</h2>
<ol>
<li>スクレイピングとは何?</li>
<li>Pythonをインストールしよう</li>
<li>Kumasan.netにアクセスしよう</li>
<li>そこにあるhtmlをスクレイプしてみよう</li>
</ol>
</body>
</html>
————————————————–
前は単にhtmlファイルを表示(print)しただけでしたが、今回はテキストファイルとして取り込んでいます。
次回は今回収集したデータを利用して、最終的には必要なデータだけ煮詰めるcodeを書いてみます。
続く