1. 程式人生 > >用Python登入好友QQ空間點贊

用Python登入好友QQ空間點贊

記得之前跟我女票說過,說要幫她空間點贊,點到999就不點了。剛開始還能天天記得,但是後來事情一多,就難免會忘記,前兩天點讚的時候忽然覺得這樣好枯燥啊,正好也在學Python,就在想能不能有什麼方法能自動點贊。
這裡寫圖片描述

以前學C藉助win32API也幹過操作其他應用程式的事,想想可行性還是挺高的,於是就去百度了一下。發現還真有類似的,說幹就幹,正好也是週末,那就直接熬夜“擼”起來吧。先上程式碼:

 def QQZan(qq):
    browser = webdriver.Chrome()
    browser.maximize_window()
    browser.get('https://user.qzone.qq.com/{}/main'
.format(qq)) browser.switch_to_frame('login_frame') #通過使用選擇器選擇到表單元素進行模擬輸入和點選按鈕提交 browser.find_element_by_id('switcher_plogin').click() browser.find_element_by_id('u').clear() browser.find_element_by_id('u').send_keys('這裡填你的QQ賬號') browser.find_element_by_id('p').clear() browser.find_element_by_id('p'
).send_keys('這裡填你的QQ密碼') browser.find_element_by_id('login_button').click() time.sleep(3) browser.find_element_by_xpath('//*[@id="like"]/a[1]').click() browser.quit()

這裡定義了一個函式,輸入QQ號碼就可以直接登入ta的空間去點讚了。我這裡是使用了Chrome瀏覽器去操作的,推薦大家使用Firefox。如果大家和我一樣是使用Chrome,需要下載一個與你selenium對應版本的chromedriver.exe,需要下載的可以去CSDN裡看看,一定要下載對應版本的。下載好之後將chromedriver.exe放到你Python的安裝目錄下面即可。

  程式碼很簡單,開啟Chrome瀏覽器,最大化視窗,輸入想要訪問的空間,輸入賬號和密碼登入,點選點贊按鈕點贊,然後關閉瀏覽器。要注意的是,我這裡是精簡版,沒有加判斷沒有做異常處理,比如可能你開啟網頁了,但是有些東西沒加載出來你就直接找到輸入,肯定找不到,最後也就不會成功,一般可以等待幾秒,或者判斷是否已經載入成功(用動態等待)。定位的方式有很多,這裡不多說了,網上講的很清楚了,自己先開啟瀏覽器,將滑鼠移到相應的位置,比如輸入框,點選右鍵,開啟檢查,如下圖:
  這裡寫圖片描述

這裡寫圖片描述

通過這些基本可以定位,有些沒有這些Attribute的,還可以通過Xpath等定位,操作如下:在之前檢查詢到的程式碼那裡右鍵 ——>> Copy ——>> Copy Xpath(其他類似)

這裡寫圖片描述

完整程式碼如下:

def QQZan(qq):
    browser = webdriver.Chrome()
    browser.maximize_window()
    browser.get('https://user.qzone.qq.com/{}/main'.format(qq))
    browser.switch_to_frame('login_frame')
    #通過使用選擇器選擇到表單元素進行模擬輸入和點選按鈕提交
    browser.find_element_by_id('switcher_plogin').click()
    browser.find_element_by_id('u').clear()
    browser.find_element_by_id('u').send_keys('這裡填寫你的QQ號碼')
    browser.find_element_by_id('p').clear()
    browser.find_element_by_id('p').send_keys('這裡填寫你的QQ密碼')
    browser.find_element_by_id('login_button').click()
    time.sleep(3)
    browser.find_element_by_xpath('//*[@id="like"]/a[1]').click()
    browser.quit()
QQZan('想要點讚的QQ號碼')