濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Selenium實(shí)現(xiàn)微博自動(dòng)化運(yùn)營(yíng)之關(guān)注、點(diǎn)贊、評(píng)論功能

Selenium實(shí)現(xiàn)微博自動(dòng)化運(yùn)營(yíng)之關(guān)注、點(diǎn)贊、評(píng)論功能

熱門標(biāo)簽:地圖標(biāo)注資源分享注冊(cè) 北京外呼系統(tǒng)咨詢電話 高德地圖標(biāo)注公司位置需要錢嗎 襄陽(yáng)外呼增值業(yè)務(wù)線路解決方案 廊坊地圖標(biāo)注申請(qǐng)入口 慶陽(yáng)外呼系統(tǒng)定制開發(fā) 合肥阿里辦理400電話號(hào) 怎么去掉地圖標(biāo)注文字 海南人工外呼系統(tǒng)哪家好

Selenium 是什么?

Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具,可以模擬真正的用戶操作,支持多種瀏覽器,如Firefox,Safari,Google Chrome,Opera等。

Selenium 模擬的就是一個(gè)真實(shí)的用戶的操作行為,我們完全不用擔(dān)心 cookie 追蹤和隱藏字段的干擾。
除了Selenium 外,還有Puppeteer 工具可以模擬用戶操作,Python + Selenium + 第三方瀏覽器可以讓我們處理多種復(fù)雜場(chǎng)景,包括網(wǎng)頁(yè)動(dòng)態(tài)加載、JS 響應(yīng)、Post 表單等。

正好,我們公司有一個(gè)妹紙團(tuán)隊(duì)運(yùn)營(yíng)的微博粉絲挺多,叫中公題庫(kù)君,我們使用Selenium實(shí)現(xiàn)微博自動(dòng)關(guān)注她,順便點(diǎn)贊和評(píng)論一下

相關(guān)幫助鏈接

  • 官網(wǎng)地址
  • 查找元素
  • 等待指定狀態(tài)
  • 所有動(dòng)作
  • action瀏覽器api

一、核心代碼

talking is cheap,話不多說(shuō),上代碼!

from selenium import webdriver
import time
# 注意這里使用了我本機(jī)的谷歌瀏覽器驅(qū)動(dòng)
browser = webdriver.Chrome(executable_path='/Users/chenqionghe/.wdm/drivers/chromedriver/79.0.3945.36/mac64/chromedriver')
# 設(shè)置用戶名、密碼
username = "你的用戶名"
password = "你的密碼"
# 打開微博登錄頁(yè)
browser.get('https://passport.weibo.cn/signin/login')
browser.implicitly_wait(5)
time.sleep(1)
# 填寫登錄信息:用戶名、密碼
browser.find_element_by_id("loginName").send_keys(username)
browser.find_element_by_id("loginPassword").send_keys(password)
time.sleep(1)
# 點(diǎn)擊登錄
browser.find_element_by_id("loginAction").click()
time.sleep(1)
# 通過(guò)人機(jī)驗(yàn)證,找到那個(gè)小點(diǎn)點(diǎn)擊一下
browser.find_element_by_class_name("geetest_radar_tip").click()
# 打開我們的中公題庫(kù)君的首頁(yè)
browser.get('https://m.weibo.cn/u/5430882137')
# 加關(guān)注
follow_button = browser.find_element_by_xpath('//div[@class="m-add-box m-followBtn"]')
follow_button.click()
time.sleep(1)
# 這時(shí)候彈出了選擇分組的框,定位取消按鈕
group_button = browser.find_element_by_xpath('//a[@class="m-btn m-btn-white m-btn-text-black"]')
group_button.click()
time.sleep(1)
# 這時(shí)候我們就關(guān)注成功了,好,接下來(lái),我們給題庫(kù)君點(diǎn)贊和評(píng)論一下
# 找到第二條微博,因?yàn)榈谝粭l微博都是置頂?shù)?
second_weibo=browser.find_element_by_xpath("http://div[@class='card m-panel card9 weibo-member card-vip'][2]")
second_weibo.text
js = "arguments[0].scrollIntoView();" 
# 將下拉滑動(dòng)條滑動(dòng)到當(dāng)前div區(qū)域
browser.execute_script(js, second_weibo) 

# 給第二條微博點(diǎn)贊
selector="http://div[@class='card m-panel card9 weibo-member card-vip'][2]//footer/div[@class='m-diy-btn m-box-col m-box-center m-box-center-a'][3]"
a=browser.find_element_by_xpath(selector)
a.click()
# 定位第二條微博的評(píng)論處,點(diǎn)擊
selector="http://div[@class='card m-panel card9 weibo-member card-vip'][2]//footer/div[@class='m-diy-btn m-box-col m-box-center m-box-center-a'][2]"
a=browser.find_element_by_xpath(selector)
text=a.text
a.click()

# 輸出評(píng)論內(nèi)容
wishes="I'm super saiyan, best wishes to you !"
if text=='評(píng)論':
 # 光標(biāo)定位到發(fā)表評(píng)論處
 comment=browser.find_element_by_tag_name('textarea')
 comment.click()
 # 輸入評(píng)論內(nèi)容
 comment.send_keys(wishes)
 time.sleep(1)
 # 定位發(fā)送按鈕
 sendBtn=browser.find_element_by_class_name('m-send-btn')
else:
 # 光標(biāo)定位到發(fā)表評(píng)論處
 focus=browser.find_element_by_css_selector('span[class="m-box-center-a main-text m-text-cut focus"]')
 focus.click()
 # 點(diǎn)擊評(píng)論
 comment=browser.find_element_by_tag_name('textarea')
 comment.click()
 # 輸入評(píng)論內(nèi)容
 comment.send_keys(wishes)
 # 定位發(fā)送按鈕
 sendBtn=browser.find_element_by_class_name('btn-send')
# 發(fā)表評(píng)論
sendBtn.click()

二、步驟分解

1.打開瀏覽器

from selenium import webdriver
import time
# 注意這里使用了我本機(jī)的谷歌瀏覽器驅(qū)動(dòng)
browser = webdriver.Chrome(executable_path='/Users/chenqionghe/.wdm/drivers/chromedriver/79.0.3945.36/mac64/chromedriver')

2.訪問(wèn)微博登錄頁(yè)

# 打開微博登錄頁(yè)
browser.get('https://passport.weibo.cn/signin/login')
browser.implicitly_wait(5)


可以看到,已經(jīng)打開了頁(yè)面

3.輸入賬號(hào)密碼

# 填寫登錄信息:用戶名、密碼
username = "你的用戶名"
password = "你的密碼"
browser.find_element_by_id("loginName").send_keys(username)
browser.find_element_by_id("loginPassword").send_keys(password)
time.sleep(1)

4.點(diǎn)擊登錄

# 點(diǎn)擊登錄
browser.find_element_by_id("loginAction").click()

5.通過(guò)人機(jī)驗(yàn)證

找到那個(gè)小點(diǎn)點(diǎn)擊一下

browser.find_element_by_class_name("geetest_radar_tip").click()

登錄成功,如下所示


6.訪問(wèn)我們的中公題庫(kù)君首頁(yè)

browser.get('https://m.weibo.cn/u/5430882137')

7.加一下關(guān)注

#加關(guān)注
follow_button = browser.find_element_by_xpath('//div[@class="m-add-box m-followBtn"]')
follow_button.click()
time.sleep(1)
# 這時(shí)候彈出了選擇分組的框,定位取消按鈕
group_button = browser.find_element_by_xpath('//a[@class="m-btn m-btn-white m-btn-text-black"]')
group_button.click()


關(guān)注成功后,讓選擇分組,這里我直接找到取消按鈕點(diǎn)擊了一下
這時(shí)候我們就關(guān)注成功了,好,接下來(lái),我們找到題庫(kù)君非置頂?shù)牡谝粭l微博評(píng)論一下

8.定位到第2條微博

因?yàn)榈?條一般是置頂?shù)?,定位到?條微博頁(yè)面處

# 找到第二條微博,因?yàn)榈谝粭l微博都是置頂?shù)?
second_weibo=browser.find_element_by_xpath("http://div[@class='card m-panel card9 weibo-member card-vip'][2]")
second_weibo.text
js = "arguments[0].scrollIntoView();" 
# 將下拉滑動(dòng)條滑動(dòng)到當(dāng)前div區(qū)域
browser.execute_script(js, second_weibo) 

9.開始點(diǎn)贊

# 給第二條微博點(diǎn)贊
selector="http://div[@class='card m-panel card9 weibo-member card-vip'][2]//footer/div[@class='m-diy-btn m-box-col m-box-center m-box-center-a'][2]"
a=browser.find_element_by_xpath(selector)
a.click()

可以看到,點(diǎn)贊成功了

10.點(diǎn)擊評(píng)論

#定位第二條微博的評(píng)論處
selector="http://div[@class='card m-panel card9 weibo-member card-vip'][2]//footer/div[@class='m-diy-btn m-box-col m-box-center m-box-center-a'][2]"
a=browser.find_element_by_xpath(selector)
text=a.text
a.click()

這里的邏輯是,點(diǎn)擊了,如果還沒有人評(píng)論,評(píng)論框顯示的文字叫評(píng)論>,如果已經(jīng)有人評(píng)論了會(huì)顯示評(píng)論數(shù)量

# 輸入評(píng)論內(nèi)容
wishes="I'm super saiyan, best wishes to you !"
if text=='評(píng)論':
 # 光標(biāo)定位到發(fā)表評(píng)論處
 comment=browser.find_element_by_tag_name('textarea')
 comment.click()
 # 輸入評(píng)論內(nèi)容
 comment.send_keys(wishes)
 time.sleep(1)
 # 定位發(fā)送按鈕
 sendBtn=browser.find_element_by_class_name('m-send-btn')
else:
 # 光標(biāo)定位到發(fā)表評(píng)論處
 focus=browser.find_element_by_css_selector('span[class="m-box-center-a main-text m-text-cut focus"]')
 focus.click()
 # 點(diǎn)擊評(píng)論
 comment=browser.find_element_by_tag_name('textarea')
 comment.click()
 # 輸入評(píng)論內(nèi)容
 comment.send_keys(wishes)
 # 定位發(fā)送按鈕
 sendBtn=browser.find_element_by_class_name('btn-send')
 
# 發(fā)表評(píng)論
sendBtn.click()


哈哈,看到已經(jīng)評(píng)論成功了,到此,通過(guò)Selenium實(shí)現(xiàn)了微博自動(dòng)化:關(guān)注、點(diǎn)贊、評(píng)論,感覺還挺好玩的~

總結(jié)

以上所述是小編給大家介紹的Selenium實(shí)現(xiàn)微博自動(dòng)化運(yùn)營(yíng)之關(guān)注、點(diǎn)贊、評(píng)論功能,希望對(duì)大家有所幫助!

您可能感興趣的文章:
  • 使用Selenium破解新浪微博的四宮格驗(yàn)證碼
  • Python selenium抓取微博內(nèi)容的示例代碼
  • Python selenium實(shí)現(xiàn)微博自動(dòng)登錄的示例代碼

標(biāo)簽:鎮(zhèn)江 商丘 臺(tái)州 綿陽(yáng) 平頂山 株洲 鶴崗 哈密

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Selenium實(shí)現(xiàn)微博自動(dòng)化運(yùn)營(yíng)之關(guān)注、點(diǎn)贊、評(píng)論功能》,本文關(guān)鍵詞  Selenium,實(shí)現(xiàn),微博,自動(dòng)化,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Selenium實(shí)現(xiàn)微博自動(dòng)化運(yùn)營(yíng)之關(guān)注、點(diǎn)贊、評(píng)論功能》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Selenium實(shí)現(xiàn)微博自動(dòng)化運(yùn)營(yíng)之關(guān)注、點(diǎn)贊、評(píng)論功能的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    永和县| 如东县| 新巴尔虎左旗| 新昌县| 义马市| 绥阳县| 南平市| 盐城市| 洛宁县| 依安县| 英山县| 翼城县| 盐亭县| 铜梁县| 北川| 咸宁市| 云南省| 开远市| 信丰县| 定西市| 永清县| 仁化县| 屯留县| 柳林县| 新蔡县| 乐至县| 吴川市| 乌兰察布市| 鹤庆县| 古蔺县| 旬阳县| 鹤壁市| 西峡县| 婺源县| 饶阳县| 龙门县| 鄂伦春自治旗| 西藏| 江都市| 延津县| 汝南县|