この記事では、
指定URLのHTMLを解析し、記事タイトル&リンク先を一括取得する方法
をご紹介します。
4つのステップに分けて解説していきます。
それでは早速やっていきます!
※この記事でのプログラミング言語はpythonを使っています。
必要なライブラリを準備
この記事では以下の二つのライブラリを使用します。
urllib.request
pandas
もしインストールしていなければインストールしておきましょう。
(やり方はググればすぐ出てきます。 )
指定URLのHTMLを取得する
早速ですが、指定URLのHTMLを取得するpythonコードをご紹介します。
※URLには私のブログのURLを入れています。
#ライブラリインポート
import urllib.request
import pandas as pd
pd.set_option("display.max_colwidth", None)
#テキストファイルを開く(出力用)
file = open('HTML.txt', 'w', encoding='utf-8')
#urlを指定する
url='https://www.higashisalary.com'
#HTMLを取得する
html=urllib.request.urlopen(url)
html=html.read().decode('utf-8')
#テキストファイルに書き込む
file.write(str(html))
file.close()
取得したHTMLを分析
以下が先ほど出力したテキストファイルの一部を抜粋したものです。
ブログのトップページのHTMLを取得しましたので、各記事へのリンク先の情報がこのテキストファイルに出力されています。
この中をよくみてみると下から3行目の
<a class=”entry-title-link”・・・という部分にリンク先のurlと記事タイトルが出力されているみたいですね。
※ここは使っているサイトによって違うはずですので、あなたが指定したURLではどのように記載されているかをよく確認してください。
つまり、さきほどテキストに出力したHTMLの中から、この
<a class=”entry-title-link”・・・という文字が含まれている行だけを抜き取ってくれば、リンク先と記事タイトルを一括取得できそうですね。
記事タイトルとURLの部分だけを出力する
以下が先ほど紹介したようにHTMLの中から【entry-title-link】という文字が含まれている行だけを抜き取ってくるpythonコードです。
※先ほどのコートに追記する形で記載しています。
#ライブラリインポート
import urllib.request
import pandas as pd
pd.set_option("display.max_colwidth", None)
#テキストファイルを開く(出力用)
file = open('HTML.txt', 'w', encoding='utf-8')
#urlを指定する
url='https://www.higashisalary.com'
#HTMLを取得する
html=urllib.request.urlopen(url)
html=html.read().decode('utf-8')
#テキストファイルに書き込む
file.write(str(html))
file.close()
#entry-title-linkが含まれる行を抽出する
df=pd.read_table('HTML.txt')
file = open('Output.txt', 'w', encoding='utf-8')
for i in range(len(df)):
if (df.iloc[i].str.contains('entry-title-link').bool()):
file.writelines(str(df.iloc[i]))
print(df.iloc[i])
file.close()
※実際にあなたがこのコードを実行する際は、’entry-title-link’の部分を適宜変更してご利用ください。
実行結果の確認
最後にこのコードを実行してみましょう。
実行すると実行フォルダの中にOutput.txtというテキストファイルが出力されているはずです。
そのファイルの中身を見てみましょう。
以下のように各記事のURLと記事タイトルが出力されています。
問題なくやりたいことを実行できましたね。
おわりに
というわけで今回はpythonを使って指定URLのHTMLを解析⇒記事タイトル一覧とリンク先URLを一括取得する方法についてご紹介しました。
記事中コードをコピーしてURLを書き換えるだけ、いろいろなところで役に立つはずです。
このように私のブログでは様々なプログラミングスキルを紹介しています。
・もっと革新的なことをやりたい。
・プログラミングについてもっと詳しくなりたい。
こんな思いを持っている人は、ぜひ他の記事も見てみてくださいね。
この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント