スナックelve 本店

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

【取り扱い注意】はてなブログクリーナー

f:id:elve:20220120223236p:plain
f:id:elve:20220120223057p:plain
さようならすらまともに打てなくなりました。
黒歴史は消えないわ。私が守るもの(やめて)

はじめに

はてなブログは無料で3つまでブログを開設でき、プロになると10個まで開設できます。さて、今はプロだけど、後で解約するかもしれませんね。
コレに備えてブログを削除するとそのURLがつかえなくなってしまいます。URLはとっておきたいがブログはもう不要である。
そんなとき、記事をすべて削除するプログラムです。
削除して使えなくなったURL:
https://elve.hatenablog.com/

!!!必ず事前に記事をバックアップ(エクスポート)しておきましょう

結果

削除してからご案内記事一つ書きました
elveさん抜きで話進めてくれ、意味がわからん
ダメシ添加大戦

ソース

Python3.7.12が動く環境です。
Seleniumを入れましょう

pip install selenium

あとなんかドライバー入れる

pip install webdriver_manager

# Use Webdriver Manager for Python: https://github.com/SergeyPirogov/webdriver_manager

# Import code:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
from time import sleep
import re
from selenium.webdriver.common.alert import Alert
URL = 'http://elve.hateblo.jp/'#削除するURL
ID = 'elve'#はてなID

##### 後で消す#####
PASS = '*********'#パスワード

# Use the `install()` method to set `executabe_path` in a new `Service` instance:
service = Service(executable_path=ChromeDriverManager().install())

# Pass in the `Service` instance with the `service` keyword:
driver = webdriver.Chrome(service=service)

# ログイン画面
driver.get("https://www.hatena.ne.jp/login")
sleep(0.5)
hatena_id = driver.find_element_by_id('login-name')
hatena_pass = driver.find_element_by_name('password')
hatena_id.send_keys(ID)
sleep(1)
hatena_pass.send_keys(PASS)
sleep(1)
loginbtn = driver.find_element_by_id('login-button')
loginbtn.click()
sleep(1)
# 記事の管理
# 'https://blog.hatena.ne.jp/'+ID+URL+'/config'

driver.get('https://blog.hatena.ne.jp/'+ID+'/' +
           re.sub('https*://', '', URL)+'entries')
sleep(0.5)
#次のページがある限りループ
while True:
    #すべての記事にチェック
    allchkbox = driver.find_element_by_class_name('js-select-all-entries')
    if not allchkbox.is_selected():
        allchkbox.click()
    #削除
    dlbtn = driver.find_element_by_name('delete')
    dlbtn.click()
    #削除しますか→OK
    Alert(driver).accept()
    try:
        #次のページ取得
        nt = driver.find_element_by_class_name('pager')
        nt.find_element_by_tag_name('button')
        #クリックしてすべてのチェックボックスリセット
        nt.click()
        sleep(0.8)
        allchkbox.click()
        sleep(0.2)
    except:
        break

なんか画面遷移によっては途中で止まるので繰り返し実行してください