タグ付のテストもかねて。←失敗した
もしかして記事内に #Python3 とか書いたらつく?←つかない
Enterが足りなかった・・・。これプログラムでできるかな?
やりたいこと
過去記事の編集画面を開いて、タグが入ってたらスルー、入ってなかったらカテゴリーと同じ文字を入れる。
もうちょっと詳しく書くとログインしているものとして
https://blog.hatena.ne.jp/elve/elve.hatenadiary.jp/entries
を開く
- ページ分ループ
- そのページ内の記事数分ループ
- カテゴリを取得
- 記事の編集画面を開く
- タグをつけるボタンがあれば押す(なければ戻る)
- 取得したカテゴリを入力してエンター押下相当の処理
- 次のページへを押す
- そのページ内の記事数分ループ
だな。
apiとかは未対応っぽいから、Pythonでブラウザを触れれば何とかなるかな?
フォームに入力してボタン押す必要がありそう・・・。
google:python web フォーム 自動入力
ふむふむ。
参考:pythonで自動入力、スクレイピングをしてみる - Qiita
環境:python3.8.6+visual studio code 1.50
ターミナルに下記を入力してOK
pip install selenium
これがどこに入れてもエラーになるんでよくわからん。
brewなんてコマンドないぜって言われるのでなんか根本から違うのかも。
brew tap homebrew/cask brew install chromedriver
Downloads - ChromeDriver - WebDriver for Chrome
ここから落としてきて解凍したファイルはソースファイルと同じドキュメントに置く。
これで動いた。
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support.expected_conditions import presence_of_element_located #This example requires Selenium WebDriver 3.13 or newer with webdriver.Chrome() as driver: wait = WebDriverWait(driver, 10) driver.get("https://google.com/ncr") driver.find_element(By.NAME, "q").send_keys("cheese" + Keys.RETURN) first_result = wait.until(presence_of_element_located((By.CSS_SELECTOR, "h3>div"))) print(first_result.get_attribute("textContent"))