見出し画像

はてなブログの裏技:読者の自動スター機能

はてなブログでは気に入ったブログにスターを押すことができます。スターはツイッターやインスタグラムでいう『イイネ』みたいなものです。

このイイネは前回の記事で紹介した読者登録と同じように返報性の原理があるのでイイネを押したブログからイイネを押されるということはしばしばあります。

前回の記事https://note.mu/tamurasann/n/n479af8289e82

そのため、スターは惜しみなく押していくのがよいでしょう。本当は気に入った記事対して押すことが望ましいのですが、スター獲得に重きを置く場合はたくさんのブログに押すことに意味があります。

画像1

そのような、スター獲得に重きを置いている方向けにスターを自動で押してくれるコードを書いてみました。

必要環境

前回の記事の記事と同じです。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つずつつけていきます。

画像2

pythonを学んだばかりに作成したものでfor文を使いまわしてますね笑

もう少し省略できたのかなと思っております。

この記事が気に入ったらサポートをしてみませんか?