python requests でスクレイピング(初心者向け)

python requests でスクレイピングと書き込み(初心者向け)

webサイトのソースコードを取得するプログラム(スクレイピング)の解説です。
ライブラリrequestsをインストールします。

ライブラリは特定の処理ができるようにまとめたもの。とでも理解すればよいでしょう。
やりたい処理によって用いるライブラリが異なります。

コマンドプロンプトを用いてスクレイピングするためのrequestsをインストールします。
pip install requests
と入力して実行します。



※下記のようなエラーが出る場合がります。
 pipは内部コマンドまたは外部コマンドとして認識されておりません。
解決方法はこちらがわかりやすいと思います。

解決方法へのリンク

IDLEを用いて開発、実行を進めます。
IDLEはpython実行用のアプリケーションです。
スタートメニューから起動できます。



起動したらFile→New Fileを選択すると新規で真っ白なWindowが表示されます。ここにプログラムを記述します。



ここからは実際にコードを書いていきます。
webサイトのソースコードを取得するプログラムになります。



import requests
→requestsライブラリを利用するためインポートします。


url = “https://fukutakublog.com/it/python/an-introduction-to-python”
→取得先のwebサイトのURLを入力します。
 取得先URLを変数:urlに代入します。
※変数とは箱のような入れ物をイメージしてみてください。

response = requests.get(url)
→requestsライブラリに.get(url)をつけることで
 url(https://fukutakublog.com/it/python/an-introduction-to-python)を取得          
 して、それを変数:responseに格納するという意味です。
※変数:urlを利用せず下記のように書いてもOKです。
 response = (“requests.get(https://fukutakublog.com/it/python/an-introduction-to-python”)

print(response.text)
→取得したソースコードをテキスト形式で表示するという意味です。

それでは実行してみましょう。
RunタブのRun Moduleから実行できます。
F5キーからでもOKです。

下記のように表示されていればOKです。
タブルクリックでソースコードが表示されます。


書き込み処理


テキストファイルに取得コードを書き込む処理になります。
まず書き込みするファイル名を指定します。
filename = “source_code.txt”

そのファイルを書き込みモードで開きます。
mode = “w”は書き込みモードを意味しています。
filename = open(filename,mode = “w”)

取得コードを書き込みます。
filename.write(response.text)

最後にファイルを閉じます。
filename.close()

以下がwebサイトのソースコード取得からテキストファイルへ下記込むまでの処理になります。



実行してみましょう・・・。
あれ???
UnicodeEncodeError: ‘cp932’ codec can’t encode character ‘\xa0’ in position 147: illegal multibyte sequence
とエラーがでてしまいました。

このエラーの意味を解説します。
cp932では’\xa0’って何を意味しているかわからないと言っています。
cp932は文字コードの一種です。
文字コードというのはコンピューターが理解できる文字の表し方を意味します。

例えば”あ”を表現する文字コードUTF-8では0xE38182となります。
しかし文字コードUTF-16では0x3042となります。pythonでは基本UTF-8を用いて表現します。
なのですがwindows環境の場合、今回のように外部出力する際cp932を用いて変換をしてしまいます。
cp932では変換できないコードがある、それが’\xa0’なのです。

今回の場合、UTF-8を出力する際に指定することで解決します。
filename = open(filename,mode = “w”, encoding=’UTF-8′), encoding=’UTF-8’を加えます。
以下の通りです。
実行してみましょう。



ソースコードがある同じ階層に
source_code.txtができていると思われます。
開いてみましょう。
以下のようにソースコードが取得できていれば成功です。



参考書籍は下記になります。