python 模拟登陆人人网,并发文字状态
这几天一直在学习用python 爬取网页, 今天试着写了一个小程序, 模拟登陆 人人网,并且提供了发送文字状态的函数。在登录的时候,已经可以处理有验证码的 情况 ,就拿来练手吧。 (在处理字符串的部分比较麻烦===因为不敢用正则表达式QAQ )
代码:
# -*- coding: utf-8 -*-
import urllib2,urllib,cookielib,json,sys
from bs4 import BeautifulSoup###
reload(sys)
sys.setdefaultencoding('utf8')
####cookie
cookiejar= cookielib.CookieJar()
cookproc= urllib2.HTTPCookieProcessor(cookiejar)
######get the pagedef get(url,headers=False):if headers:req=urllib2.Request(url,headers)else:req=urllib2.Request(url)opener=urllib2.build_opener(cookproc)urllib2.install_opener(opener)page=urllib2.urlopen(req)try:page=page.decode('utf-8')except :page=page.decode('gbk','ignore')return pagedef post(url,postdata,headers=False):postdata=urllib.urlencode(postdata)if headers:req=urllib2.Request(url,postdata,headers)else :req=urllib2.Request(url,postdata)opener=urllib2.build_opener(cookproc)urllib2.install_opener(opener)page=urllib2.urlopen(req).read()try:page=page.decode('utf-8')except :page=page.decode('gbk','ignore')return pageclass RenRen:email =""pwd =""_id =""name =""icode =""_rtk =""_tok =""def __init__(self,email,pwd):self.email=emailself.pwd=pwdself.check()self.login()def check(self):postdata={'_rtk' :self._rtk,'email' :self.email}url='http://www.renren.com/ajax/ShowCaptcha'if post(url,postdata)==1:self.getCode()def getCode(self):par={ 't' :'web_login','rnd' :0.47730758627661407}url='http://icode.renren.com/getcode.do?%s' %urllib.urlencode(par)data=get(url)tmp = tempfile.mkstemp(suffix='.png')os.write(tmp[0], data)os.close(tmp[0])os.startfile(tmp[1])self.icode=input("输入验证码:")## get necesary paramentsdef getpar(self):for x in cookiejar:if x.name=='id':self._id=x.valuebreakurl='http://www.renren.com/%s' % self._idpage=urllib2.urlopen(url).read()html=BeautifulSoup(page)parli=html.find(name='script')s=str(parli)index1=s.index('nx.user')index2=s.index('nx.user.isvip')s=s[index1+10:index2-1]parli=s.split(',')self.name=parli[3][8:]self._tok=parli[4][17:-1]self._rtk=parli[5][9:-3]print self.name,self._tok,self._rtkdef login(self):postdata={'captcha_type' :'web_login','domain' :'renren.com','email' :self.email,'f' :'http%3A%2F%2Fwww.renren.com%2F476284792','icode' :self.icode,'key_id' :1,'origURL' :'http://www.renren.com/home','password' :self.pwd,'rkey' :''}headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0'}url="http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=2014611340911"info=json.loads(post(url,postdata,headers))if info["code"]:self.getpar()print self.name,'登录成功'else:print '登录失败'def publish(self,content):postdata={'_rtk' :self._rtk,'channel' :'renren','content' :content,'privacyParams' :{"sourceControl":"99"},'requestToken' :self._tok,'withInfo' :'%7B%22wpath%22%3A%5B%5D%7D'}url='http://shell.renren.com/'+self._id+'/status' post(url,postdata)print 'ok'email= input('用户名')
password=input('密码')
rr=RenRen(email,password)
#rr.publish('下雨吧')
python 模拟登陆人人网,并发文字状态相关推荐
- Python之 使用session类模拟登陆人人网
使用request模块的session类模拟登陆人人网 因为人人网的登陆不需要验证码,故模拟登陆比较简单. 思路 1. 使用浏览器打开人人网的登陆页面 2. 找出登陆时发送post请求的url地址和请 ...
- python3模拟登陆人人网(requests)
前言 之前看别人一直模拟登陆人人网,我就想人人网有头有脸的咋那么好模拟登陆进去呢,,今天看了下发现真的超级容易登陆,可能人人太老了也好久不更新了吧.人人网一点防护措施都没有,没有验证码,没有加密,没有 ...
- PythonScript_003_通过Cookie模拟登陆人人网
#!/usr/bin/env python # -*- coding:utf-8 -*-import urllib.request import http.cookiejar # 相当于Python2 ...
- 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模拟登陆专题,实现网易云音乐自动签到!这项目居然只值三百?
前言: 时隔三周没有和大家见过面了,最近在研究python模拟登陆专题,话不多说,让我们愉快地开始实现模拟登陆实现网易云自动签到 开发工具 **Python****版本:**3.6.4 相关模块: D ...
- python模拟登陆 验证码el_python 模拟登陆163邮箱
import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium ...
- Python模拟登陆大连交通大学教务在线
Python模拟登陆大连交通大学教务在线,使用wxPython做的界面,urllib2发送数据,可以实现登陆后获取首页登陆数据的功能,目前只做登陆,其他的暂时没做 Python2.7代码 # -*- ...
- 使用Python模拟登陆12306并全自动下单
最近一段时间一直在研究用Python模拟登陆12306网站并自动刷票下单,经过一段时间的摸索,终于完成了代码,实现了12306刷票的功能.话不多说,先给大伙儿看看成果.我录制了一段时间,展示了自动刷票 ...
最新文章
- 双圆弧插值算法(一)
- 数据持久化框架为什么放弃Hibernate、JPA、Mybatis,最终选择JDBCTemplate!
- oracle SQL 命令行(四.安全性自主控制)
- 强!分库分表与分布式数据库技术选项分析
- 域名的MX设置及校验方法
- Java5、Java6、Java7的新特性
- 加减法叫做什么运算_【课堂实录】加减法运算的本质(四上)
- 诺基亚指控联想侵权;格力回应“被中国移动取消中标资格”;微软暂停更新 Edge 浏览器 | 极客头条...
- 生物物种数据库_一个半机械人的物种
- 使用MDScratchImageView实现刮奖效果
- IDEA格式化HTML页面
- 宽带波形测试软件,适用于5G时代的波形测试分析系统是怎样的? - 全文
- BLE 配对流程梳理
- 两台linux 机器互联,Red Hat Linux9.0下两台机器怎么互联
- The Little Schemer Fourth Edition,笔记01
- linux 关闭桌面特效,[多图] Ubuntu 中开启3D桌面特效与设置方法
- 魅蓝u20android版本,魅族魅蓝U20刷机包 Flyme 6 稳定版系统发布 性能提升 超长待机 全面优化...
- apex哪个服务器稳定,apex哪个服务器
- 手写数字识别(识别纸上手写的数字)
- 视频超分:Zooming Slow-Mo(Zooming Slow-Mo: Fast and Accurate One-Stage Space-Time Video Super-Resolution)
热门文章
- 一个一步步进行反向传播的例子
- 基于MOS管的防反接电路设计仿真
- 北京市2008年住房建设计划
- 自动编码器之:去噪自动编码器(DAE)、稀疏自动编码器、变分自动编码器、其他自动编码器
- 手机/平板电脑作为pc电脑扩展屏——Splashtop Wired XDisplay使用教程
- 企业信用等级评价认证是什么
- [转] 如何实现 React 写小程序-1
- 树模型和神经网络比较
- waiting for /dev/ to be fully populated...
- Starting Reload cups, upon starting avahi-daemon to make sure remote queues are populated [fail]