python登录豆瓣并发帖的方法


Posted in Python onJuly 08, 2015

本文实例讲述了python登录豆瓣并发帖的方法。分享给大家供大家参考。具体如下:

这里涉及urllib、urllib2及cookielib常用方法的使用

登录豆瓣,由于有验证码,采取的办法是将验证码图片下载到同目录下,查看图片后输入验证码即可登录、发帖

帖子内容写死在代码中了 

# -- coding:gbk --
import sys, time, os, re
import urllib, urllib2, cookielib
loginurl = 'https://www.douban.com/accounts/login'
cookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
params = {
"form_email":"your email",
"form_password":"your password",
"source":"index_nav" #没有的话登录不成功
}
#从首页提交登录
response=opener.open(loginurl, urllib.urlencode(params))
#验证成功跳转至登录页
if response.geturl() == "https://www.douban.com/accounts/login":
  html=response.read()
  #验证码图片地址
  imgurl=re.search('<img id="captcha_image" src="(.+?)" alt="captcha" class="captcha_image"/>', html)
  if imgurl:
    url=imgurl.group(1)
    #将图片保存至同目录下
    res=urllib.urlretrieve(url, 'v.jpg')
    #获取captcha-id参数
    captcha=re.search('<input type="hidden" name="captcha-id" value="(.+?)"/>' ,html)
    if captcha:
      vcode=raw_input('请输入图片上的验证码:')
      params["captcha-solution"] = vcode
      params["captcha-id"] = captcha.group(1)
      params["user_login"] = "登录"
      #提交验证码验证
      response=opener.open(loginurl, urllib.urlencode(params))
      ''' 登录成功跳转至首页 '''
      if response.geturl() == "http://www.douban.com/":
        print 'login success ! '
        print '准备进行发帖'
        p={"ck":""}
        c = [c.value for c in list(cookie) if c.name == 'ck']
        if len(c) > 0:
          p["ck"] = c[0].strip('"')    
        addtopicurl="http://www.douban.com/group/python/new_topic"
        res=opener.open(addtopicurl)
        html=res.read()
        m= re.search('<input type="hidden" name="topic_id" value="(.+?)">', html) 
        p["topic_id"] = m.group(1)
        m= re.search('<input type="hidden" name="topic_id_sig" value="(.+?)">', html) 
        p["topic_id_sig"] = m.group(1)
        p["rev_title"] = 'title'
        p["rev_text"] = 'send body'
        p["rev_submit"] = '好了,发言'
        request=urllib2.Request(addtopicurl)
        request.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11")
        request.add_header("Accept-Charset", "GBK,utf-8;q=0.7,*;q=0.3")
        request.add_header("Origin", "http://www.douban.com")
        request.add_header("Referer", "http://www.douban.com/group/python/new_topic")
        opener.open(request, urllib.urlencode(p))

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python获取beautifulphoto随机某图片代码实例
Dec 18 Python
python使用str &amp; repr转换字符串
Oct 13 Python
python下载文件记录黑名单的实现代码
Oct 24 Python
Python 实现网页自动截图的示例讲解
May 17 Python
Python3 使用cookiejar管理cookie的方法
Dec 28 Python
深入学习python多线程与GIL
Aug 26 Python
python 字典套字典或列表的示例
Dec 16 Python
Django视图、传参和forms验证操作
Jul 15 Python
解决Python 函数声明先后顺序出现的问题
Sep 02 Python
删除pycharm鼠标右键快捷键打开项目的操作
Jan 16 Python
matplotlib相关系统目录获取方式小结
Feb 03 Python
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
Jun 05 Python
python发送HTTP请求的方法小结
Jul 08 #Python
python友情链接检查方法
Jul 08 #Python
Python抓取百度查询结果的方法
Jul 08 #Python
Python抓取淘宝下拉框关键词的方法
Jul 08 #Python
Python根据区号生成手机号码的方法
Jul 08 #Python
Python写入CSV文件的方法
Jul 08 #Python
Python打印斐波拉契数列实例
Jul 07 #Python
You might like
解析CI即CodeIgniter框架在Nginx下的重写规则
2013/06/03 PHP
codeigniter框架批量插入数据
2014/01/09 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
2015/01/28 PHP
php输入数据统一类实例
2015/02/23 PHP
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
jquery实现商品拖动选择效果代码(自写)
2013/05/28 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
探索Vue.js component内容实现
2016/11/03 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
详解webpack异步加载业务模块
2017/06/23 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
2018/10/18 Javascript
JavaScript中filter的用法实例分析
2019/02/27 Javascript
通过js随机函数Math.random实现乱序
2020/05/19 Javascript
详解VUE中的插值( Interpolation)语法
2020/10/18 Javascript
最基础的Python的socket编程入门教程
2015/04/23 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
CSS实现雨滴动画效果的实例代码
2019/10/08 HTML / CSS
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
大学生专业个人学习的自我评价
2013/10/26 职场文书
过程装备与控制工程专业个人的求职信
2013/12/01 职场文书
党的群众教育实践活动实施方案
2014/06/12 职场文书
英语教育专业毕业生求职信
2014/08/28 职场文书
上班迟到检讨书
2014/09/15 职场文书
2015入党个人自传范文
2015/06/26 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
各类场合主持词开场白范文集锦
2019/08/16 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
详解CSS中的特指度和层叠问题
2021/07/15 HTML / CSS