スナックelve 本店

バツイチ40代女の日記です

ツイート用過去記事のタイトルとURLの一覧出力

できた~(*´▽`*)

import os
import urllib.request, urllib.error
from bs4 import BeautifulSoup as bs4

#書き込みファイル
FILE_NAME_A = r'ふるぱす\hatenaAllPostList.txt'

#文字コード
FILE_ENCODING = 'UTF-8'

#文頭文章
HEAD_TEXT = r"#はてなブログ 過去記事です(*'▽')ノ<"

#URL
INPUT_URL = 'https://elve.hatenadiary.jp/'

#ファイル書き込み(文字列をそのまま書き込み)
def write_file_from_str(p_filename, p_mode, p_data):
    file = open(p_filename, p_mode, encoding=FILE_ENCODING)
    file.write(p_data)
    file.close()

#メイン処理

#出力ファイルがあったら削除
if os.path.exists(FILE_NAME_A):
    os.remove(FILE_NAME_A)

p = 1
while 1:
    readPage = INPUT_URL + "archive?page=" + str(p)
    #URL取得
    try:
        f = urllib.request.urlopen(readPage)
    except :
        break;
    
    outputText = ''
    soup = bs4(f)
    #エントリータイトルクラス取得
    ss = soup.findAll(class_='entry-title')
    if ss == []:
        break;  
    for s in ss:
        outputText = outputText + HEAD_TEXT + s.get_text(strip=True) + ' ' + s.find('a').get('href') + '\n'
    #1ページ分ファイル書き込み
    write_file_from_str(FILE_NAME_A, 'a', outputText)
    #次のページへ
    p = p + 1
print("終わり!")

結果

900件以上出力があったのに登録できるの700件までだった(´;ω;`)ウゥゥ
f:id:elve:20200301113345p:plain