1. 程式人生 > >Python+Selenium個人網頁自動化點贊

Python+Selenium個人網頁自動化點贊

對於一個網頁,我們不能連續點贊,測試發現是網頁通過cookie實現的點贊限制。當進入網頁時該網頁會在本地PC存放一個cookie值,當點選點贊按鈕時會向伺服器返回本地cookie存放的值,如果返回到伺服器的cookie值相同則該點贊無效。

我們可以清除瀏覽記錄,即清除本地cookie值,重新整理網頁就可以繼續點贊。

因此,我們的思路就是清除cookie——重新整理網頁——模擬點贊

這裡寫圖片描述 這裡寫圖片描述

import time
from selenium import webdriver
from selenium.common.exceptions import TimeoutException, WebDriverException
from
selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC ''' 通過開發者工具,發現網頁的cookie的形式如下,即name=cookie: Cookie: JSESSIONID=5C3D1B40AF4DE06D9B010BCDCBD110FA ''' ''' 通過selenium開啟網頁,清除網頁儲存到本地的cookie, 然後定位到點贊按鈕,模擬點選, 迴圈模擬即可。 '''
def search(): try: # 待測試網頁 url = SomeUrl # 開啟網頁 driver = webdriver.Chrome() driver.get(url) # 設定等待時間,防止因網速的問題而沒有開啟網頁 wait = WebDriverWait(driver, 10) # 設定迴圈,自動化點贊 for i in range(5): print('網頁初始的cookie:', driver.get_cookies()) print('\n'
) # 儲存cookie的name的容器 cookie_name = [] # 獲取網頁的cookie,可能有很多個 cookies = driver.get_cookies() # 獲取所有的cookie的name for cookie in cookies: cookie_name.append(cookie.get('name')) # 刪除cookie的name 並 列印輸出網頁的cookie for cookie in cookie_name: driver.delete_cookie(name=cookie) print('刪除cookie:', driver.get_cookies()) print('\n') # 重新整理網頁 driver.refresh() # 設定睡眠時長,防止系統檢測出惡意 time.sleep(20) # 模擬點贊:先定位元素,再模擬點選 agree = wait.until( EC.element_to_be_clickable((By.CSS_SELECTOR, '#_parise_imgobj_u6')) ) agree.click() # 列印輸出重新整理後網頁的cookie print('重新整理網頁後的cookie:', driver.get_cookies()) print('\n') print('*'*20) driver.close() except TimeoutException or WebDriverException: # 異常處理,如果出現異常則重新開啟網頁 return search() def main(): search() if __name__ == '__main__': main()