python爬虫入门之qq登陆初探

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

作为一个非专业人士,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.com/cgi-bin/login?style=9&appid=549000929&daid=147&pt_no_auth=1&s_url=http%3A%2F%2Fm.qzone.com%2Finfocenter%3Fg_f%3D' qq='账号' possword='密码' browser=Browser() login(browser,url,qq,possword) find(browser)`

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

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

你可能感兴趣的:(python爬虫入门之qq登陆初探)