各カテゴリページの1ページ目だけ対応。
FC東京タグ荒らし状態になってしまった。すみません(-_-;)
ログインした後の編集画面では設定済みタグが取れなかったので再読み込みしてます。
なんかたぶん、表示待ちってこうじゃない気がするw
切り貼りなのであまり突っ込まれると困るw
Google Chrome は
バージョン: 86.0.4240.75(Official Build) (64 ビット)
Pythonの関数の書き方よくわかってないのでベタ打ちです。
途中でタブ開いたりウィンドウ開いたりすると多分おかしなことになりますのでご注意ください。
基本自己責任でお願いいたします。
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 import expected_conditions as EC
from bs4 import BeautifulSoup
import urllib.parse
setTags=['C#','Excel','JavaScript','jQuery','Outlook','php','PowerPoint','python3','vba','Word','FC東京']
loginFig=False
fastTaguSet=False
with webdriver.Chrome() as driver:
wait = WebDriverWait(driver, 10)
i=1
for setTag in setTags:
driver.get("https://elve.hatenadiary.jp/archive/category/" + urllib.parse.quote(setTag))
print("==="+setTag+"===")
WebDriverWait(driver, 15).until(EC.presence_of_all_elements_located)
original_window = driver.current_window_handle
html = driver.page_source.encode('utf-8')
soup = BeautifulSoup(html, 'lxml')
entrys=soup.find_all("section", class_="archive-entry test-archive-entry autopagerize_page_element")
for entry in entrys:
print(i,":",entry["data-uuid"])
driver.execute_script("window.open()")
driver.switch_to.window(driver.window_handles[-1])
driver.get("https://blog.hatena.ne.jp/elve/elve.hatenadiary.jp/edit?entry=" + entry["data-uuid"])
WebDriverWait(driver, 15).until(EC.presence_of_all_elements_located)
if loginFig==False:
driver.find_element_by_xpath("//*[@id='login-name']").send_keys("はてなID")
driver.find_element_by_xpath("//*[@id='container']/div[1]/form[1]/div/div[2]/div/input").send_keys("パスワード")
driver.find_element_by_xpath("//*[@id='option']/input[2]").send_keys(Keys.RETURN)
WebDriverWait(driver, 15).until(EC.presence_of_all_elements_located)
driver.get("https://blog.hatena.ne.jp/elve/elve.hatenadiary.jp/edit?entry=" + entry["data-uuid"])
WebDriverWait(driver, 15).until(EC.presence_of_all_elements_located)
loginFig=True
html2 = driver.page_source.encode('utf-8')
soup2 = BeautifulSoup(html2, 'lxml')
item2 = soup2.find("ul", class_="editor-tag-editor_tag-list")
tags=item2.find_all("li")
setTagFlg=True
if tags==None:
setTagFlg=True
else:
for tag in tags:
if tag.text=="#"+setTag:
setTagFlg=False
if setTagFlg==True:
driver.find_element_by_xpath("//*[@id='tag-editor-root']/div/button").send_keys(Keys.RETURN)
WebDriverWait(driver, 15).until(EC.presence_of_all_elements_located)
if fastTaguSet==False:
driver.find_element_by_xpath("/html/body/div[10]/div/div/div/button").send_keys(Keys.RETURN)
WebDriverWait(driver, 15).until(EC.presence_of_all_elements_located)
fastTaguSet=True
driver.find_element_by_xpath("/html/body/div[11]/div/div/div[1]/div[2]/span/input").send_keys(setTag)
driver.find_element_by_xpath("/html/body/div[11]/div/div/div[1]/div[2]/span/input").send_keys(Keys.RETURN)
print(i,"SET:",setTag)
driver.find_element_by_xpath("/html/body/div[11]/div/div/div[2]/button").send_keys(Keys.RETURN)
WebDriverWait(driver, 15).until(EC.presence_of_all_elements_located)
driver.find_element_by_xpath("//*[@id='submit-button']").send_keys(Keys.RETURN)
WebDriverWait(driver, 15).until(EC.presence_of_all_elements_located)
driver.close()
driver.switch_to.window(original_window)
WebDriverWait(driver, 15).until(EC.presence_of_all_elements_located)
i+=1