Livedoorブログの記事更新をPythonとseleniumで自動化してみた。
皆さん、こんにちは。中川です。かなり久しぶりの投稿です。普段は会社でJavaを使った業務用のWebアプリケーションを作っていますが、一般生活ではPythonでスクレイピングをしていることが多いです。特にブログの自動更新やsnsなどの自動フォローなどにはまっています。そこで今回、Pythonとseleniumを使って簡単なブログ更新を行ってみました。
環境
Python 3.7.0
selenium 78
コード
from selenium import webdriver
from time import sleep
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
class LivedoorAuto:
def __init__(self):
options = webdriver.ChromeOptions()
#chrome://version プロフィールパスを参照
options.add_argument("")
#executable_pathには、chromedriverのパスを記入
self.bot = webdriver.Chrome(executable_path="", chrome_options=options)
def livedoor(self):
bot = self.bot
#ブログ投稿ページのurl
bot.get("")
wait = WebDriverWait(bot,60)
entry_title = wait.until(expected_conditions.visibility_of_element_located((By.ID,"entry_title")))
entry_title.send_keys("Hello")
while True:
try:
entry_body = wait.until(expected_conditions.visibility_of_element_located((By.ID,"editor_1_f")))
entry_body.send_keys("Hello Everyone")
break
except TimeoutException:
print("timeout")
continue
sleep(2)
bot.find_element_by_class_name("quickSocialMessage").send_keys("Hello")
ed = LivedoorAuto()
ed.livedoor()
タイトルをhello、記事内容にHello Everyoneという文字を記入するようなコードです。
最初にurlにアクセスする際に、ログインページに飛ばされますが、何度もログインを繰り返すとスパム扱いされることがあるため、最初からログイン情報をセッションに保持するようにしています。
seleniumで、ログイン情報を保持する方法は、以下のページに詳しく説明されています。
Seleniumで次の実行時にもサイトのログイン状態を維持したい場合
あまり難しくはないのですが、案外ネットでこのような情報が少なかったので、書いてみました。何かの参考になると幸いです。
Author And Source
この問題について(Livedoorブログの記事更新をPythonとseleniumで自動化してみた。), 我々は、より多くの情報をここで見つけました https://qiita.com/nakagawa333/items/618e43f4371027c79a1d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .