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)