機能説明
指定したURLのHタグを取得するツールです。
コード全体
下記コードをColaboratoryに貼り付け、実際の動作を確認してください。
◆コード
import requests from bs4 import BeautifulSoup url ='https://hidero.net/kourituka/' dc = {} r = requests.get(url) if r.status_code == 200: soup = BeautifulSoup(r.content,'html.parser') dc['title'] = soup.title.string tags = soup.find_all(['h1','h2']) heading_list = [] for tag in tags: tagcont = tag.text.strip() heading_list.append(tag.name + ':' + tagcont) dc['heading'] = heading_list print(dc['title']) for h in dc['heading']: print(h)
◆実行結果
アフィリエイトの作業効率を8倍アップするアイテム10選 | 効率よく稼ぐ副業とアフィリエイト術 h1:アフィリエイトの作業効率を8倍アップするアイテム10選 h2:クリップボード管理ツール「CLCL」でコピーを効率化 h2:ランチャーソフト「Orchis」で起動を効率化 h2:パスワード管理ツール「LastPass」でログイン作業を効率化 h2:マウスジェスチャーソフト「MouseGestureL」でマウス操作を効率化 h2:情報収集を簡単にする「Pocket」で情報収集を効率化 h2:ブラインドタッチでキー入力を効率化 h2:「Speechnotes」で文章入力を効率化 h2:オンラインストレージサービス「DropBox」 h2:Google日本語入力で文章作成を効率化 h2:ゲーミングマウス h2:【重要】ヒデローのメルマガ特別講座 h2:関連記事
機能の説明
1.
import requests from bs4 import BeautifulSoup
ライブラリをインポートしています。
それぞれ、以下のような機能を持っています。
BeautifulSoup:HTMLからデータを取得します
2.
url ='https://hidero.net/kourituka/'
urlという変数にタグを取得したいページのURLの文字列を入力しています。
3.
dc = {}
dcという辞書型の変数を初期化しています。
4.
r = requests.get(url)
requests.getメソッドを使って指定したURLのWebページの情報を取得し、rという変数に入力しています。
5.
if r.status_code == 200:
status_codeにはWebページを取得した際の状態を知らせてくれる値が入っています。
「200」は正常に取得できたことを意味します。
つまり、if文を使って、正常に取得できた場合にのみ、それ以降の処理を行うようにしています。
6.
soup = BeautifulSoup(r.content,'html.parser')
取得したWebページの情報をBeautifulSoupライブラリを使って、HTMLの解析をしやすい形に変換しています。
7.
dc['title'] = soup.title.string
辞書型のdcの「title」キーにtitle.stringメソッドで取得した値を入力しています。
8.
tags = soup.find_all(['h1','h2'])
BeautifulSoupのfind_allメソッドを使うと、指定したタグのデータを全て抽出することができます。
ここでは、H1タグのデータとH2タグのデータを抽出し、それをtagsに入力しています。
9.
heading_list = []
heading_listという配列を初期化します。
10.
for tag in tags: tagncont = tag.text.strip() heading_list.append(tag.name + ':' + tagcont)
tagsの要素の数だけ処理を繰り返します。
tagsの要素であるtagのテキストを取得し、同時のstripメソッドで前後の空白を削除します。
heading_listにタグの名前とその内容を連結した文字列を入力します。
11.
dc['heading'] = heading_list
辞書型のdcの「heading」キーにタグのリストを入力します。
12.
print(dc['title']) for h in dc['heading']: print(h)
printを使用して、取得した内容を出力します。
dc[‘heading’]は配列なので、
カスタマイズ
次のようなカスタマイズを行ってみてください。
1.
現在は「H1」、「H2」のタグのみ取得するプログラムになっています。
これを「H1」から「H3」まで取得するプログラムにしてください。
2.
現在は1つのURLのみ指定しています。
複数のURLを一気に調査できるプログラムにしてください。
例として以下の3ページのタグを一回の実行で取得するようにしてください。
!https://hidero.net/blog-entry-791/ https://hidero.net/kourituka/ https://hidero.net/serposcope-setup/
3
辞書型のdcにurlを追加して、ページのタイトルの下にページのURLも表示するようにしてください。
カスタマイズ前の表示:
アフィリエイトの作業効率を8倍アップするアイテム10選 | 効率よく稼ぐ副業とアフィリエイト術 h1:アフィリエイトの作業効率を8倍アップするアイテム10選 h2:クリップボード管理ツール「CLCL」でコピーを効率化 。。。。。
カスタマイズ後の表示:
アフィリエイトの作業効率を8倍アップするアイテム10選 | 効率よく稼ぐ副業とアフィリエイト術 https://hidero.net/kourituka/ h1:アフィリエイトの作業効率を8倍アップするアイテム10選 h2:クリップボード管理ツール「CLCL」でコピーを効率化 。。。。。
4.
自由にカスタマイズしてみてください。
「このようにカスタマイズしてみたい」という要望があって、やり方がわからない場合はチャットワークで質問してください。