目标:1、模拟登录豆瓣,2、自动更改签名和发表说说。

代码如下:

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'ziv·chan' import re
import time
import requests
from PIL import Image url = 'https://www.douban.com/' headers = {
'origin' : 'https://www.douban.com',
'referer' : 'https://www.douban.com/',
'user-agent' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36'
} session = requests.session() # 获取验证码Id
def get_captchaId():
html = session.get(url,headers=headers)
html.encoding = 'utf-8'
pageCode = html.text
pattern = re.compile('captcha[?]id=(.*?)&',re.S)
captchaId = re.findall(pattern,pageCode)[0]
return captchaId # 获取验证码图片
def get_captchaSolu(captchaId):
url_plus = 'https://www.douban.com/misc/captcha?id=%s&size=s' % captchaId
cha = session.get(url_plus,headers=headers)
with open('cap_douban.png','wb') as f:
f.write(cha.content)
f.close()
im = Image.open('cap_douban.png')
im.show()
im.close()
captcha = raw_input('请输入验证码')
return captcha # 编辑签名
def edit_signature(ck):
url = 'https://www.douban.com/j/people/143780683/edit_signature'
data = {
'ck' : ck,
'signature' : '人间有味是清欢。'
}
headers = {
'origin' : 'https://www.douban.com',
'referer' : 'https://www.douban.com/people/143780683/',
'user-agent' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36',
'x-requested-with' : 'XMLHttpRequest'
}
session.post(url,data=data,headers=headers) # 编辑说说
def edit_words(ck):
url = 'https://www.douban.com/'
data = {
'ck' : ck,
'comment' : '天之涯,地之角,知交半零落。一斛浊酒尽余欢,今宵别梦寒。'
}
headers = {
'origin': 'https://www.douban.com',
'referer': 'https://www.douban.com/',
'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36'
}
session.post(url,data=data,headers=headers) # 获取ck
def get_ck():
url = 'https://www.douban.com/people/143780683/'
html = session.get(url,headers=headers)
pageCode = html.text
# print pageCode
pattern = re.compile('ck=(.*?)[(">)]',re.S)
ck = re.findall(pattern,pageCode)[0]
return ck if __name__ == '__main__':
captchaId = get_captchaId()
captcha = get_captchaSolu(captchaId)
form_data = {
'source' : 'index_nav',
'form_email' : '',
'form_password' : 'ChelseaFC.2',
'captcha-solution' : captcha,
'captcha-id' : captchaId
}
session.post('https://www.douban.com/accounts/login',data=form_data,headers=headers) ck = get_ck()
edit_signature(ck)
# 避免冲突,设置延时
time.sleep(5)
edit_words(ck)

Python模拟登录实战(二)的更多相关文章

  1. Python模拟登录实战(一)

    今天,学习了模拟登录新浪微博.模拟登录主要有两种方式,一.利用Cookie:二.模仿浏览器的请求,发送表单. 法一: Cookie:指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密 ...

  2. Python模拟登录实战(三)

    目标:模拟登录知乎 代码如下: #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'ziv·chan' import re impor ...

  3. Python入门:模拟登录(二)或注册之requests处理带token请求

    转自http://blog.csdn.net/foryouslgme/article/details/51822209 首先说一下使用Python模拟登录或注册时,对于带token的页面怎么登录注册模 ...

  4. 【Python数据分析】Python模拟登录(一) requests.Session应用

    最近由于某些原因,需要用到Python模拟登录网站,但是以前对这块并不了解,而且目标网站的登录方法较为复杂, 所以一下卡在这里了,于是我决定从简单的模拟开始,逐渐深入地研究下这块. 注:本文仅为交流学 ...

  5. 【py登陆】python模拟登录

    用Python模拟登录网站 前面简单提到了 Python 模拟登录的程序,但是没写清楚,这里再补上一个带注释的 Python 模拟登录的示例程序.简单说一下流程:先用cookielib获取cookie ...

  6. 忘记秘密利用python模拟登录暴力破解秘密

    忘记秘密利用python模拟登录暴力破解秘密: #encoding=utf-8 import itertools import string import requests def gen_pwd_f ...

  7. [Python] Python 模拟登录,并请求

    Python 模拟登录,并请求 # encoding: utf- import requests import socket import time socket.setdefaulttimeout( ...

  8. Python爬虫-百度模拟登录(二)

    上一篇-Python爬虫-百度模拟登录(一) 接上一篇的继续 参数 codestring codestring jxG9506c1811b44e2fd0220153643013f7e6b1898075 ...

  9. Python模拟登录的几种方法

    目录 方法一:直接使用已知的cookie访问 方法二:模拟登录后再携带得到的cookie访问 方法三:模拟登录后用session保持登录状态 方法四:使用无头浏览器访问 正文 方法一:直接使用已知的c ...

随机推荐

  1. yii 自动生成的内容,分页信息(Displaying 1-10 of 15 results.)如何修改或是yii cgridview template summary

    问的白一点就是 Displaying 1-10 of 15 results 如何翻译 如果搜索的话, 搜这个会出来很多内容 yii cgridview template summary 好了,其他不说 ...

  2. 计算方法(一)用C#实现数值迭代

    平时,经常会遇到解方程,计算方法中常用的有二分法(精度太低,迭代次数多,一般没人用),牛顿迭代法,弦截法,网上大多都是C++或者Java的实现代码,很少有C#的,我在本科毕业论文中用到了这些,那时也需 ...

  3. shape 填充 圆角矩形 圆形 环形

    属性 使用中可能出现的问题: 如果在某些手机中使用 shape 出现黑色填充背景,设置<solid android:color="@color/transparent"/&g ...

  4. nginx配置学习文章

    partOne 自我释义部分 我的是阿里云的ubuntu *******实际上感觉这里是基本配置,很用不到*********#定义其用户或用户组user www-data;#nginx的进程数,应当为 ...

  5. linux的df命令

    man df可以查看磁盘的使用情况以及文件系统被挂载的位置 df -lh命令效果如下

  6. 利用eclipse开发php<转>

    1.安装php环境 Eclipse支持PHP自动提示 其实如果你已经安装好了php环境(安装过程见)的话,只需要下面2步就可以了.hoho,很简单的. 1,下载eclipse中php的插件phpecl ...

  7. Maven 打包可运行 jar

    为配合自动化部署hudson,最近研究了如何将eclipse maven工程打包成可运行的jar函数及对应的资源文件.      由于我们工程中包含了多个可运行的任务,在打包成jar时需要分别导出,p ...

  8. JAVA-6-简单的模拟ATM使用

    public static void main(String[] args) { in = new Scanner(System.in); int count = 1; int pwd = 11111 ...

  9. 重装eclipse要做的事

    当我们要在新环境上安装eclipse时,往往会做很多的个性修改和安装一些插件,下面就这些做一下总结: 一.插件 1.svn插件(subclipse) 插件官网下载地址:http://subclipse ...

  10. MapReduce UnitTest

    通常情况下,我们需要用小数据集来单元测试我们写好的map函数和reduce函数.而一般我们可以使用Mockito框架来模拟OutputCollector对象(Hadoop版本号小于0.20.0)和Co ...