1、首先,張貼其python腳本代碼,從中能夠看到,在安裝python外,須要另外安裝python的如下模塊:requests,selenium和pyvirtualdisplaypython
#!-*- coding:utf-8 -*- from pyvirtualdisplay import Display from selenium import webdriver import requests #要簽到的QQ羣號列表 groupid = [123456789,987654321] headers = {"Content-Type":"application/x-www-form-urlencoded","Host":"qiandao.qun.qq.com","Origin":"http://qiandao.qun.qq.com","Referer": "http://qiandao.qun.qq.com","User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36"} #建立一個啓動session的請求對象 s = requests.Session() def login(): try: #啓動一個虛擬桌面 display = Display(visible=0, size=(1100,700)) display.start() driver = webdriver.Firefox() driver.set_window_position(20, 40) driver.set_window_size(1100,700) #打開QQ登陸界面 準備登陸 driver.get('http://qzone.qq.com') driver.switch_to_frame('login_frame') driver.find_element_by_id('switcher_plogin').click() driver.find_element_by_id('u').clear() #填寫QQ賬號 driver.find_element_by_id('u').send_keys('qq號') driver.find_element_by_id('p').clear() #填寫QQ密碼 driver.find_element_by_id('p').send_keys('****zh30.com****') #模擬點擊登陸按鈕 執行登陸 獲取cookie driver.find_element_by_id('login_button').click() cookies = driver.get_cookies() #退出瀏覽器 driver.quit() display.stop() return cookies except: pass cookies = login() for cookie in cookies: if cookie['name'] == 'skey': skey = cookie['value'] s.cookies.set(cookie['name'], cookie['value']) #計算bkn並存入cookie e = 5381 for i in range(len(skey)): e = e + (e<<5)+ord(skey[i]) bkn = str(2147483647 & e) s.cookies.set("Gtk", bkn) #簽到方法 def sign(groupid): for gid in groupid: response = s.post("http://qiandao.qun.qq.com/cgi-bin/sign", data={"gc":gid, "is_sign":0, "bkn":bkn}, headers=headers) responseJson = response.json() if responseJson.has_key('em') and responseJson['em'] == 'no login': break #開始簽到 sign(groupid)
2、安裝pythonlinux
1) 下載python3.3
~$ wget http://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz
2) 解壓、進入目錄、建立安裝目錄
~$ tar -zxvf Python-3.3.0.tgz
~$ cd Python-3.3.0
~$ mkdir /usr/local/python33
3) 編譯、安裝。(–prefix 指定安裝到的位置;若是是centos5或其它版本,有可能在安裝完後python中import zlib時會提示no module named zlib,須要在這條語句後面追加參數 –with-zlib)
~$ ./configure –prefix=/usr/local/python33
~$ make && make install
4) 設置,由於安裝完後 系統默認執行python命令時仍是啓動的2.7,咱們須要把默認的2.7從bin目錄中轉移走,換成咱們的python3.3。
~$ mv /usr/bin/python /usr/bin/python27
~$ ln -s /usr/local/python33/bin/python3.3 /usr/bin/python
以上兩句 第一句 將原系統中的python重命令爲python27,第二句建立軟鏈接(快捷方式)指向到咱們新安裝的python3.3。這樣在系統命令行中兩個版本python均可以用。運行python將啓動python3.3,運行python26將啓動python2.7。git
3、安裝pyhton的模塊github
ps:不知爲何,直接用pip安裝了request,pyvirtualdisplay和selenium都無論用。因此改用源代碼安裝web
1.安裝requests模塊
sudo git clone git://github.com/kennethreitz/requests.git
cd requests/
sudo python setup.py installjson
2.安裝selenium
tar包下載地址:
https://git.oschina.net/tanjiajun/python/repository/archive/master
上傳到linux,解壓,安裝
sudo tar -zxvf selenium-3.0.2.tar.gz
cd selenium-3.0.2
sudo python setup.py install
若是是pip安裝的話,運行:sudo pip3 install seleniumcentos
3.安裝pyvirtualdisplay
tar包下載地址:
https://git.oschina.net/tanjiajun/python/raw/master/PyVirtualDisplay-0.2.1.tar.gz
上傳到linux,解壓,安裝
sudo tar -zxvf PyVirtualDisplay-0.2.1.tar.gz
cd PyVirtualDisplay-0.2.1
sudo python setup.py install瀏覽器
4.還有一個在selenium模塊中,咱們例子由於用到webdriver.Firefox()火狐瀏覽的driver.因此要下載geckodriverckod
下載地址:cookie
https://github.com/mozilla/geckodriver/releases
解壓後將geckodriverckod,存放至/usr/local/bin/路徑下便可session
sudo mv ./Downloads/geckodriver /usr/local/bin/
大功告成,運行咱們開頭的腳本代碼,python sign.py(這邊我保存的文件名爲sign.py)