はてなブログの裏技:読者の自動スター機能
はてなブログでは気に入ったブログにスターを押すことができます。スターはツイッターやインスタグラムでいう『イイネ』みたいなものです。
このイイネは前回の記事で紹介した読者登録と同じように返報性の原理があるのでイイネを押したブログからイイネを押されるということはしばしばあります。
前回の記事https://note.mu/tamurasann/n/n479af8289e82
そのため、スターは惜しみなく押していくのがよいでしょう。本当は気に入った記事対して押すことが望ましいのですが、スター獲得に重きを置く場合はたくさんのブログに押すことに意味があります。
そのような、スター獲得に重きを置いている方向けにスターを自動で押してくれるコードを書いてみました。
必要環境
前回の記事の記事と同じです。https://note.mu/tamurasann/n/n479af8289e82
コード全容
#はてなブログにログインして読者登録をしている新着ブログにスターをつける
import unittest, time
import sys
sys.path.append(r"c:\users\user\appdata\local\programs\python\python37-32\lib\site-packages")
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
driver = webdriver.Chrome("chromedriverを保存した場所")
driver.get("https://blog.hatena.ne.jp/-/antenna")
elem_serach_lgname = driver.find_element_by_id("login-name")
elem_serach_lgname.send_keys("はてなブログのログインID")
elem_serach_pss = driver.find_element_by_class_name("password")
elem_serach_pss.send_keys("はてなブログのログインPW")
elem_serach_btn = driver.find_element_by_class_name("submit-button")
elem_serach_btn.click()
time.sleep(5)
url_lists = []
elements_a = driver.find_elements_by_xpath('//*[@id="admin-main"]/section/div[1]/div[2]/div[1]/ul/li//div/div/h3/a')
for elem in elements_a:
url = elem.get_property("href")
url_lists.append(url)
for elem2 in url_lists:
driver.set_page_load_timeout(70)
try:
driver.get(elem2)
time.sleep(5)
driver.find_element_by_xpath('//div/footer/div[1]/span[2]/img').click()
time.sleep(5)
driver.find_element_by_xpath('//div/footer/div[1]/span[2]/img').click()
time.sleep(3)
except:
cud = driver.current_url
print(cud)
print("処理に失敗しました。次のブログを探します。")
continue
print('1ページ目のスターの入力が完了しました')
#下記からは2ページ目の処理
driver.get("https://blog.hatena.ne.jp/-/antenna")
time.sleep(5)
driver.find_element_by_xpath('//*[@id="admin-main"]/section/div[1]/div[2]/div[1]/div[1]/a').click()
time.sleep(5)
driver.refresh()
url_lists2 = []
elements_b = driver.find_elements_by_xpath('//*[@id="admin-main"]/section/div[1]/div[2]/div[1]/ul/li//div/div/h3/a')
for elem3 in elements_b:
url2 = elem3.get_property("href")
url_lists2.append(url2)
for elem4 in url_lists2:
driver.set_page_load_timeout(70)
try:
driver.get(elem4)
time.sleep(5)
driver.find_element_by_xpath('//div/footer/div[1]/span[2]/img').click()
time.sleep(5)
driver.find_element_by_xpath('//div/footer/div[1]/span[2]/img').click()
time.sleep(3)
except:
cud2 = driver.current_url
print(cud2)
print("処理に失敗しました。次のブログを探します。")
continue
print('2ページ目のスターの入力が完了しました')
購読中のブログページから2ページ目まで表示されているブログに対してスターを2つずつつけていきます。
pythonを学んだばかりに作成したものでfor文を使いまわしてますね笑
もう少し省略できたのかなと思っております。
この記事が気に入ったらサポートをしてみませんか?