![見出し画像](https://assets.st-note.com/production/uploads/images/9546208/rectangle_large_type_2_b8d02c4b14bbe4ff4ae167458ed98f1d.jpeg?width=800)
Photo by
akanuma
[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
この記事が気に入ったらサポートをしてみませんか?