No.2511 はてなブログの記事の数を数える(by bg4kids)/はてダの記事も

ルシュールクミオ (id:bg4kids)さんからコメント欄にいただいたソースがもったいないので共有。
私の言葉足らずな記事でもちゃんと伝わっていて嬉しい。
URLはここに変えてあります。適時変更してください。

# coding: UTF-8
import requests
from bs4 import BeautifulSoup
page= 1 #読み込み開始ページ
entry = 1 #記事のカウント用(whileが最初で終了しないための初期値)
entrysum = 0	#記事の合計
while entry>0: #エントリーがある場合のみ処理
target_url ='https://elve.hatenadiary.jp/archive?page='
r = requests.get(target_url+ str(page) ) #requestsを使って、webから取得
soup = BeautifulSoup(r.text, 'lxml') #要素を抽出
entry = len( soup.find_all('a', class_="entry-title-link"))
entrysum = entrysum + entry
page += 1
print (entrysum)

結果もばっちり★

62

私ははてなダイアリのarchiveページの「古い50日分>」ってのがあるかないかで最後を判定していたので、それがなかった場合はエラーが起きる←エラーが起きるかどうかで最終ページ判定ってしてたんだよね。
美しくなかった。
URLに+ページ要素で、そのページにエントリが有るかないか数えた方が綺麗だった。
修正してみよう。

# coding: UTF-8
import requests
from bs4 import BeautifulSoup
page= 0 #読み込み開始ページ
entry = 1 #記事のカウント用(whileが最初で終了しないための初期値)
entrysum = 0	#記事の合計
while entry>0: #エントリーがある場合のみ処理
target_url ='http://d.hatena.ne.jp/elve/archive?word=&of='
r = requests.get(target_url+ str(page) ) #requestsを使って、webから取得
soup = BeautifulSoup(r.text, 'lxml') #要素を抽出
#<li class="archive archive-section">を数える
entry = len(soup.find_all('li',class_="archive archive-section"))
entrysum += entry
#次のページのurl用
page += 50
#結果出力
print (entrysum)

すっきりしたー!(^◇^)ありがとうございます!!

どのくらい面白かった?

星を押して送信してね

平均 0 / 5. Vote count: 0

是非フォローしてください

最新の情報をお伝えします

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です