目标: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. git 更换远程仓库地址

    1. 更改软件仓库指向.在github改了用户名和仓库名称后,仓库地址也相应的发生的变化,这时候就需要更新本地仓库以指向新的远程仓库地址: $git remote set-url origin git ...

  2. python 下的数据结构与算法---8:哈希一下【dict与set的实现】

    少年,不知道你好记不记得第三篇文章讲python内建数据结构的方法及其时间复杂度时里面关于dict与set的时间复杂度[为何访问元素为O(1)]原理我说后面讲吗?其实就是这篇文章讲啦. 目录: 一:H ...

  3. CSS3 边框

    说明:CSS3完全向后兼容,因此不必改变现有的设计.浏览器通常支持CSS2 CSS3模块 CSS3被划分为模块: 选择器 框模型 背景和边框 文本效果 2D/3D 转换 动画 多列布局 用户界面 CS ...

  4. 增加Android模拟器的内存

    1,在window中,打开'C:\Users\Administrator\.android\avd\4.4.2.avd\config.ini'文件(我的是win7,xp的貌似不是'Users',是'D ...

  5. DELL磁盘阵列控制卡(RAID卡)MegaCli常用管理命令汇总

    新版本的 MegaCli-1.01.24-0.i386.rpm (下载地址:http://www.lsi.com/downloads/Public/MegaRAID Common Files/8.02 ...

  6. Java知识整理一

    文档二 密码:java

  7. Javascript 中神奇的 this

    Javascript 当中的 this 与其他语言是完全不同的机制,很有可能会让一些编写其他语言的工程师迷惑. 1. 误以为 this 指向函数自身 根据 this 的英语语法,很容易将函数中出现的  ...

  8. SQL服务器名称更改

    引用地址:http://blog.sina.com.cn/s/blog_6c9f8a0501016s3p.html 1.使用select @@ServerName可以看到当前数据库的服务器名 2.从S ...

  9. python 3.5 购物小程序

    #!/usr/bin/env python #encoding: utf-8 import time import os nowtime = time.strftime('%Y-%m-%d %H:%M ...

  10. Swift—析构函数-备

    与构造过程相反,实例最后释放的时候,需要清除一些资源,这个过程就是析构过程.在析构过程中也会调用一种特殊的方法deinit,称为析构函数.析构函数deinit没有返回值,也没有参数,也不需要参数的小括 ...