php 新浪微博模拟登陆,python模拟新浪微博登陆功能(新浪微博爬虫)
import urllib
import base64
import rsa
import binascii
def PostEncode(userName, passWord, serverTime, nonce, pubkey, rsakv):
"Used to generate POST data"
encodedUserName = GetUserName(userName)#用户名使用base64加密
encodedPassWord = get_pwd(passWord, serverTime, nonce, pubkey)#目前密码采用rsa加密
postPara = {
'entry': 'weibo',
'gateway': '1',
'from': '',
'savestate': '7',
'userticket': '1',
'ssosimplelogin': '1',
'vsnf': '1',
'vsnval': '',
'su': encodedUserName,
'service': 'miniblog',
'servertime': serverTime,
'nonce': nonce,
'pwencode': 'rsa2',
'sp': encodedPassWord,
'encoding': 'UTF-8',
'prelt': '115',
'rsakv': rsakv,
'url': 'http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack',
'returntype': 'META'
}
postData = urllib.urlencode(postPara)#网络编码
return postData
PostEncode函数构建POST的消息体,要求构建得到内容与真正登陆所需的信息相同。难点在用户名和密码的加密方式:
复制代码 代码如下:
def GetUserName(userName):
"Used to encode user name"
userNameTemp = urllib.quote(userName)
userNameEncoded = base64.encodestring(userNameTemp)[:-1]
return userNameEncoded
def get_pwd(password, servertime, nonce, pubkey):
rsaPublickey = int(pubkey, 16)
key = rsa.PublicKey(rsaPublickey, 65537) #创建公钥
message = str(servertime) + '\t' + str(nonce) + '\n' + str(password) #拼接明文js加密文件中得到
passwd = rsa.encrypt(message, key) #加密
passwd = binascii.b2a_hex(passwd) #将加密信息转换为16进制。
return passwd
新浪登录过程,密码的加密方式原来是SHA1,现在变为了RSA,以后可能还会变化,但是各种加密算法在Python中都有对应的实现,只要发现它的加密方式(),程序比较易于实现。
到这里,Python模拟登陆新浪微博就成功了,运行输出:
复制代码 代码如下:
loginUrl: http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack&ssosavestate=1390390056&ticket=ST-MzQ4NzQ5NTYyMA==-1387798056-xd-284624BFC19FE242BBAE2C39FB3A8CA8&retcode=0
Login sucess!
果需要爬取微博中的信息,接下来只需要在Main函数后添加爬取、解析模块就可以了,比如读取某微博网页的内容:
网友评论
文明上网理性发言,请遵守 新闻评论服务协议我要评论
立即提交
专题推荐独孤九贱-php全栈开发教程
全栈 100W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
玉女心经-web前端开发教程
入门 50W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
天龙八部-实战开发教程
实战 80W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
php中文网:公益在线php培训,帮助PHP学习者快速成长!
Copyright 2014-2020 https://www.php.cn/ All Rights Reserved | 苏ICP备2020058653号-1
php 新浪微博模拟登陆,python模拟新浪微博登陆功能(新浪微博爬虫)相关推荐
- Python模拟登陆新浪微博
本文转自:http://blog.csdn.net/andrewseu/article/details/48730735 前几天想在学校论坛上淘一个二手蓝牙鼠标,没有时间盯着论坛就写了Python程序 ...
- python模拟登录爬虫 简书_python爬虫入门之模拟登陆新浪微博
很多网页浏览都需要首先登陆,比如说新浪微博.当然,这里有一个小技巧,用手机3G版登陆.电脑版会有各种加密,动态加载什么的.我们就耍一下小流氓,柿子拣软的捏么. 浏览器保持登陆是利用我们登陆时收到的co ...
- pythonurllib微博登陆是什么_python模拟新浪微博登陆功能(新浪微博爬虫)
1.主函数(WeiboMain.py): import urllib2 import cookielib import WeiboEncode import WeiboSearch if __name ...
- Python模拟微博登陆,亲测有效!
作者 l 上海小胖 来源 l Python专栏(ID:xpchuiit) 转载请联系授权(微信ID:pythonzhuanlan) 今天想做一个微博爬个人页面的工具,满足一些不可告人的秘密.那么首先就 ...
- Python 模拟微博登陆,亲测有效!
今天想做一个微博爬个人页面的工具,满足一些不可告人的秘密.那么首先就要做那件必做之事!模拟登陆-- 代码是参考了:https://www.douban.com/note/201767245/,我对代码 ...
- python模拟登录qq账号密码_最新的Python模拟登陆QQ脚本,一键批量登录,强行过验证!...
Python模拟QQ批量登陆脚本,以下代码附带解释以便于理解思路. Python代码: #coding=utf-8 import os import time import win32gui impo ...
- python模拟登陆 验证码el_python 模拟登陆github的示例
# -*- coding: utf-8 -*- # @Author: CriseLYJ # @Date: 2020-08-14 12:13:11 import re import requests c ...
- python模拟登陆163邮箱并获取通讯录
From: http://hi.baidu.com/fc_lamp/blog/item/2466d1096fcc532de8248839.html python模拟登陆163邮箱并获取通讯录 #-*- ...
- python模拟登录163邮箱_python模拟登陆163邮箱并下载邮件内容(第三版代码片段)
python模拟登陆163邮箱并下载邮件内容(第三版代码片段) 注意: 1 由于163邮箱有众多版本,所以登录请求URL,邮件URL等可能也不太一样,下面是163的简约3.0 2 代码缺乏错误处理能力 ...
- 潜心专研Python模拟登陆专题,实现网易云音乐自动签到!这项目居然只值三百?
前言: 时隔三周没有和大家见过面了,最近在研究python模拟登陆专题,话不多说,让我们愉快地开始实现模拟登陆实现网易云自动签到 开发工具 **Python****版本:**3.6.4 相关模块: D ...
最新文章
- linux网络虚拟化
- 静态时序分析的约束命令
- MySQL-CentOS7通过YUM安装MySQL5.7.29
- Web前端开发学习资料分享
- CImageList上的位图, CTabCtrl 还是用ICON好!
- Twitter开发者帐号申请(还没出结果)
- Makefile知识点
- matlab矩阵(一)--如何控制矩阵中小数点的位数
- 创客匠人直播升级服务,打造主流直播课堂​
- ARM920T的Cache
- portraiture2022插件安装使用教程
- 【shel】-if表达式
- Android 内存剖析 – 发现潜在问题------比较好android博客
- 【12306购票】测试运行以及完整代码
- 怎么样免费建自己的网站?
- 计算机科学与技术路线,技术路线写法
- 最全的厚黑学,教你怎样混社会(人生格言) 作者 李宗吾
- 【PMP】三点估算法
- ssdp协议 upnp_SSDP,简单服务发现协议
- arcgis select by attributes一次选多个_ArcGIS 导出 CAD 的常见需求以及实现