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字符串连接方法分析
Apr 12 Python
Python删除Java源文件中全部注释的实现方法
Aug 30 Python
Python中矩阵库Numpy基本操作详解
Nov 21 Python
python使用json序列化datetime类型实例解析
Feb 11 Python
python 通过字符串调用对象属性或方法的实例讲解
Apr 21 Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 Python
django使用django-apscheduler 实现定时任务的例子
Jul 20 Python
Pytorch中实现只导入部分模型参数的方式
Jan 02 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
Dec 01 Python
Python将CSV文件转化为HTML文件的操作方法
Jun 30 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
php 应用程序安全防范技术研究
2009/09/25 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
2020/06/05 PHP
JQuery小知识
2010/10/15 Javascript
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
jQuery中is()方法用法实例
2015/01/06 Javascript
jQuery模拟新浪微博首页滚动效果的方法
2015/03/11 Javascript
js面向对象实现canvas制作彩虹球喷枪效果
2016/09/24 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
python定时采集摄像头图像上传ftp服务器功能实现
2013/12/23 Python
Python函数中定义参数的四种方式
2014/11/30 Python
遍历python字典几种方法总结(推荐)
2016/09/11 Python
Python sqlite3事务处理方法实例分析
2017/06/19 Python
对Tensorflow中的变量初始化函数详解
2018/07/27 Python
Python判断telnet通不通的实例
2019/01/26 Python
python使用正则筛选信用卡
2019/01/27 Python
Python2和Python3的共存和切换使用
2019/04/12 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
基于python实现从尾到头打印链表
2019/11/02 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
python3中calendar返回某一时间点实例讲解
2020/11/18 Python
Mansur Gavriel官网:纽约市的一个设计品牌
2019/05/02 全球购物
简单说下OSPF的操作过程
2014/08/13 面试题
体育专业个人的求职信范文
2013/09/21 职场文书
企业总经理岗位职责
2014/02/13 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
假释思想汇报范文
2014/10/11 职场文书
2014年幼儿园班级工作总结
2014/12/17 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
2016年习总书记讲话学习心得体会
2016/01/20 职场文书
springboot为异步任务规划自定义线程池的实现
2022/06/14 Java/Android