見出し画像

[Python]シェルで試すスクレイピングまでの3ステップ

1.事前準備

以下の2つのサードパーティライブラリをインストールします。
・requests
・BeautifulSoup4

pip install requests
pip install BeautifulSoup4

2.スクレイピングの流れ

(1).取得したいWebページの情報があるサーバーにリクエストを送る。
(2).サーバーからのレスポンスでHTMLに欲しい情報を抜き出す。
(3).抜き出した情報を整形して出力する。

3. シェル上で試してみる

(1).取得したいWebページの情報があるサーバーにリクエストを送る。

>>> import requests
#Python公式ドキュメントのサイト
>>> URL = "https://docs.python.jp/3/index.html"
#リクエストを送りレスポンスオブジェクトを受け取る
>>> response = requests.get(URL)
#レスポンスオブジェクトのステータスコードを確認
>>> response.status_code
#問題なく処理されている
200
>>>response.encoding = response.apparent_encoding

(2).サーバーからのレスポンスでHTMLに欲しい情報を抜き出す。

>>>from bs4 import BeautifulSoup
>>>soup = BeautifulSoup(response.text, "html.parser")
>>>index_link_html = soup.find_all("p", class_="biglink")
>>>for p_tg in index_link_html:
...    print(p_tg)

<p class="biglink"><a class="biglink" href="whatsnew/3.6.html">What's new in Python 3.6?</a><br/>
<span class="linkdescr"> あるいは2.0からの<a href="whatsnew/index.html">すべての "What's new" ドキュメント</a></span></p>
<p class="biglink"><a class="biglink" href="tutorial/index.html">チュートリアル</a><br/>
<span class="linkdescr">ここから始めましょう</span></p>
<p class="biglink"><a class="biglink" href="library/index.html">ライブラリーリファレンス</a><br/>
<span class="linkdescr">枕の下に置きましょう</span></p>
<p class="biglink"><a class="biglink" href="reference/index.html">言語リファレンス</a><br/>
<span class="linkdescr">構文と言語要素の解説</span></p>
<p class="biglink"><a class="biglink" href="using/index.html">Python のセットアップと利用</a><br/>
<span class="linkdescr">各プラットフォームでの Python の使い方</span></p>
<p class="biglink"><a class="biglink" href="howto/index.html">Python HOWTO</a><br/>
<span class="linkdescr">特定のトピックに関する、より深いドキュメント</span></p>
<p class="biglink"><a class="biglink" href="installing/index.html">Python モジュールのインストール</a><br/>
<span class="linkdescr">Python Package Index などからのインストール</span></p>
<p class="biglink"><a class="biglink" href="distributing/index.html">Python モジュールの配布</a><br/>
<span class="linkdescr">他人がインストールできるようにモジュールを配布する</span></p>
<p class="biglink"><a class="biglink" href="extending/index.html">拡張と埋め込み</a><br/>
<span class="linkdescr">C/C++ プログラマ向けチュートリアル</span></p>
<p class="biglink"><a class="biglink" href="c-api/index.html">Python/C API</a><br/>
<span class="linkdescr">C/C++ プログラマ向けリファレンス</span></p>
<p class="biglink"><a class="biglink" href="faq/index.html">FAQ</a><br/>
<span class="linkdescr">よくある質問(解答つき!)</span></p>
<p class="biglink"><a class="biglink" href="py-modindex.html">全モジュール索引</a><br/>
<span class="linkdescr">すべてのモジュールに素早くアクセス</span></p>
<p class="biglink"><a class="biglink" href="genindex.html">総索引</a><br/>
<span class="linkdescr">全ての関数、クラス、用語</span></p>
<p class="biglink"><a class="biglink" href="glossary.html">用語集</a><br/>
<span class="linkdescr">重要な用語の説明</span></p>
<p class="biglink"><a class="biglink" href="search.html">検索</a><br/>
<span class="linkdescr">このドキュメントから検索する</span></p>
<p class="biglink"><a class="biglink" href="contents.html">全体の目次</a><br/>
<span class="linkdescr">全てのセクションとサブセクションの一覧</span></p>
<p class="biglink"><a class="biglink" href="bugs.html">バグを報告する</a></p>
<p class="biglink"><a class="biglink" href="about.html">このドキュメントについて</a></p>
<p class="biglink"><a class="biglink" href="license.html">Python の歴史とライセンス</a></p>
<p class="biglink"><a class="biglink" href="copyright.html">Copyright</a></p>

(3).抜き出した情報を整形して出力する。

今回は公式ドキュメントの項目のみを出力します。

>>> for i, p_tg in enumerate(index_link_html):
...     index = p_tg.a.get_text()
...     print("{}:{}".format(i+1, index))
... 
1:What's new in Python 3.6?
2:チュートリアル
3:ライブラリーリファレンス
4:言語リファレンス
5:Python のセットアップと利用
6:Python HOWTO
7:Python モジュールのインストール
8:Python モジュールの配布
9:拡張と埋め込み
10:Python/C API
11:FAQ
12:全モジュール索引
13:総索引
14:用語集
15:検索
16:全体の目次
17:バグを報告する
18:このドキュメントについて
19:Python の歴史とライセンス
20:Copyright



この記事が気に入ったらサポートをしてみませんか?