admin管理员组

文章数量:1633738

不得不承认:这篇文章的方法有些小猥琐。

作为一个非专业人士,qq登陆这件事困扰我很长时间。在没有头绪满头乱撞的时候,无意间我发现了一件大杀器:splinter!!!这个python的第三方库会操纵你的浏览器(默认是火狐),打开页面,与网页进行交互。妈妈再也不用担心什么加密什么登陆了!!!

关于splinter的方法,官方网站上简明扼要,学习还是很方便的:splinter的官方网址至于今天的qq登陆,用到的操作就更少了,直接看源代码就可以了。

在写代码之前,只需要打开手机版qq空间登陆页面的源代码,查找一下我们需要操作元素的id就可以了。

`

#coding=utf-8

import time

from splinter import Browser

import re

def login (browser,url,q,p):

browser.visit(url)

#打开url

browser.find_by_id("guideSkip").click()

#找到id是guideSkip的按钮,并单击

time.sleep(1)

browser.find_by_id("u").fill(q)

#找到id是u的输入框,并输入账号

browser.find_by_id("p").fill(p)

#找到id是u的输入框,并输入账号

browser.find_by_id("go").click()

#找到id是go的按钮,并单击

print("完成登陆")

time.sleep(1)

def find(browser):

html=browser.html

#导出当前页面的源代码

print html

content=re.findall('

(.*?)

',html,re.S)

for each in content:

print each

if __name__=='__main__':

url='http://ui.ptlogin2.qzone/cgi-bin/login?style=9&appid=549000929&daid=147&pt_no_auth=1&s_url=http%3A%2F%2Fm.qzone%2Finfocenter%3Fg_f%3D'

qq='账号'

possword='密码'

browser=Browser()

login(browser,url,qq,possword)

find(browser)`

运行程序,就会看到你的浏览器自动打开,然后进入网址,输入账号密码,一气呵成。

但是我们会发现两个小问题:一个是qq空间的网页即使是手机版的也用到了动态加载(根据你浏览的位置,后期内容选择性加载),这些内容没有在源代码里。二是登陆的速度稍微有些慢。关于这些,我们后面会讨论。

本文标签: 爬虫入门Pythonqq