美文网首页PythonPython学习程序员
python爬虫入门之qq登陆初探

python爬虫入门之qq登陆初探

作者: 森先生_wood | 来源:发表于2015-10-25 23:32 被阅读1917次

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

    作为一个非专业人士,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('<p>(.*?)</p>',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登陆初探

      本文链接:https://www.haomeiwen.com/subject/vocxhttx.html