python3.3教程之模拟百度登陆代码分享

 更新时间:2014年01月16日 14:36:13   作者:  
因工作需要,研究了一下模拟百度的登陆,开发环境使用了python3,大家参考使用吧

复制代码 代码如下:

#-*-coding:utf-8-*-
'''
Created on 2014年1月10日

@author: hhdys
'''
import urllib.request,http.cookiejar,re
class Baidu:
    def login(self):
        cj = http.cookiejar.CookieJar()
        opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
        opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36')]
        resp=opener.open('http://weigou.baidu.com/')
        for c in cj:
            print(c.name,"====",c.value)
        getapiUrl = "https://passport.baidu.com/v2/api/?getapi&class=login&tpl=mn&tangram=true"
        resp2=opener.open(getapiUrl)
        getapiRespHtml = resp2.read().decode("utf-8")
        foundTokenVal = re.search("bdPass\.api\.params\.login_token='(?P<tokenVal>\w+)';", getapiRespHtml)
        if foundTokenVal :
            tokenVal = foundTokenVal.group("tokenVal")
            print(tokenVal)

            staticpage = "http://zhixin.baidu.com/Jump/index?module=onesite"
            baiduMainLoginUrl = "https://passport.baidu.com/v2/api/?login"

            postDict = {
                        'charset':"utf-8",
                        'token':tokenVal,
                        'isPhone':"false",
                        'index':"0",
                        'staticpage': staticpage,
                        'loginType': "1",
                        'tpl': "mn",
                        'callback': "parent.bd__pcbs__n1a3bg",
                        'username':"*****",   #用户名
                        'password':"*****",   #密码
                        'mem_pass':"on",
                        "apiver":"v3",
                        "logintype":"basicLogin"
                        }
            postData = urllib.parse.urlencode(postDict);
            postData = postData.encode('utf-8')
            resp3=opener.open(baiduMainLoginUrl,data=postData)
            for c in cj:
                print(c.name,"="*6,c.value)

   
if __name__=="__main__":
    print("="*10,"开始")
    bd=Baidu()
    bd.login()

相关文章

  • 解决Python获取文件提示找不到指定路径can‘t open file 'area.py':[Errno 2] No such file or directory

    解决Python获取文件提示找不到指定路径can‘t open file 'area.py':

    这篇文章主要给大家介绍了关于如何解决Python获取文件提示找不到指定路径can‘t open file 'area.py':[Errno 2] No such file or directory的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • python argparse的使用步骤(全网最全)

    python argparse的使用步骤(全网最全)

    argparse是python的一个命令行参数解析包,在代码需要频繁修改参数时,方便使用,主要用法就是在命令行输入自己想要修改的参数,这篇文章主要介绍了python argparse的使用步骤(全网最全),需要的朋友可以参考下
    2023-04-04
  • Python Unittest根据不同测试环境跳过用例的方法

    Python Unittest根据不同测试环境跳过用例的方法

    这篇文章主要给大家介绍了关于Python Unittest如何根据不同测试环境跳过用例的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-12-12
  • 解决pytorch报错:AssertionError: Invalid device id的问题

    解决pytorch报错:AssertionError: Invalid device id的问题

    今天小编就为大家分享一篇解决pytorch报错:AssertionError: Invalid device id的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python PEP8 代码规范常见问题及解决方法

    Python PEP8 代码规范常见问题及解决方法

    最近换成 PyCharm 写代码总是会出现波浪号,这才了解到 Python 的 PEP8 代码规范,所以将常见的 PEP8 代码规范问题和解决方法记录一下,养成良好的习惯,编写规范的代码
    2023-09-09
  • Python进阶之自定义对象实现切片功能

    Python进阶之自定义对象实现切片功能

    这篇文章主要介绍了Python进阶之自定义对象实现切片功能,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Python实现给PDF添加水印的方法

    Python实现给PDF添加水印的方法

    这篇文章主要介绍了Python实现给PDF添加水印的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 基于python,Matplotlib绘制函数的等高线与三维图像

    基于python,Matplotlib绘制函数的等高线与三维图像

    这篇文章主要介绍了基于python,Matplotlib绘制函数的等高线与三维图像,函数的等高线及其三维图像的可视化方法,下面一起来学习具体内容吧,需要的小伙伴可以参考一下
    2022-01-01
  • Python深度学习理解pytorch神经网络批量归一化

    Python深度学习理解pytorch神经网络批量归一化

    这篇文章主要是Python深度学习篇,通过示例的详解让大家更好的理解pytorch神经网络批量归一化,有需要的的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • python处理文本文件并生成指定格式的文件

    python处理文本文件并生成指定格式的文件

    本节主要介绍了python如何处理文本文件并生成指定格式的文件,需要的朋友可以参考下
    2014-07-07

最新评论