通過selenium自動發博客
from selenium import webdriver
import time
bro=webdriver.Chrome(executable_path='./chromedriver.exe')
bro.get('https://i.cnblogs.com/') #打開管理頁
bro.implicitly_wait(10) #設置隱形等待
這是首頁,我們通過qq登錄只需要找到qq的所在的標簽,點擊即可,
qq_login = bro.find_element_by_xpath("/html/body/app-root/mat-sidenav-container/mat-sidenav-content/div/div/app-sign-in/app-content-container/mat-card/div/div[2]/div[2]/div/button[2]") #直接復制xpath 簡單暴力
qq_login.click() # 點擊
因為打開了點擊了這個需要打開新的窗口,我們需要切換到這個窗口
n = bro.window_handles # 獲取當前頁句柄
print (n)
bro.switch_to.window (n[1]) # 切換到新的窗口
現在只需要點擊我的頭像,就可以登陸了,但是由於frame相當於一個單獨的網頁,在父frame里是無法直接查看到子frame的元素的,必須switch_to_frame切到該frame下,才能進一步查找,
左邊的部分是在這里:切換到這個frame
bro.switch_to.frame('ptlogin_iframe') #切換到這個frame
qq_t = bro.find_element_by_id("img_out_424352752") #找到這個圖片,
time.sleep(1) #睡一秒休息一會
qq_t.click() #點擊登錄
點擊登陸后,他會自動登錄到首頁:
bro.switch_to.window (n[0]) #切換
add_tag = bro.find_element_by_xpath("/html/body/cnb-root/cnb-layout/div[2]/div[3]/div[1]/cnb-sidebar[1]/div/ul/li[1]/a") #這里是找到添加新隨筆,方法多種css,id,class,xpath等,
add_tag.click() 點擊
正文內容:找到正文的標簽,還有分類的標簽,填寫內容,或者,發布
找到發布:
title_tag = bro.find_element_by_id("post-title") #右鍵檢查,找到標題
title_tag.send_keys("selenium自動發布博客的測試")
bro.switch_to.frame('Editor_Edit_EditorBody_ifr') #和之前的的一樣,需要切換到frame,
body_tag = bro.find_element_by_xpath("//*[@id='tinymce']") #找到文章主體,
body_tag.send_keys("測試測試") #寫上測試內容,
bro.switch_to.window (n[0]) #切換回頁句柄
tag_f = bro.find_element_by_xpath("/html/body/cnb-root/cnb-layout/div[2]/div[3]/div[2]/div/cnb-spinner/div/cnb-post-editing-v2/cnb-post-editor/div[2]/cnb-collapse-panel[1]/div[2]/cnb-category-selector-panel/cnb-collapse-panel/div[2]/cnb-category-selector/div/div[1]/label/input") #找到點擊分類
tag_f.click() #點擊
#"Editor_Edit_EditorBody_ifr"
post_tag = bro.find_element_by_xpath("/html/body/cnb-root/cnb-layout/div[2]/div[3]/div[2]/div/cnb-spinner/div/cnb-post-editing-v2/cnb-post-editor/div[3]/cnb-spinner/div/cnb-submit-buttons/button[1]") #找到發送的標簽
post_tag.click() 點擊發送
可以結合爬蟲,爬取別人的博客,發到自己的博客,學習的事,怎么能叫抄呢,分享一個爬蟲爬到的小姐姐: