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 相关文章推荐
paramiko模块安装和使用(远程登录服务器)
Jan 27 Python
Python设计模式之单例模式实例
Apr 26 Python
Python3学习笔记之列表方法示例详解
Oct 06 Python
python实现读取excel写入mysql的小工具详解
Nov 20 Python
Python输出各行命令详解
Feb 01 Python
Python如何基于selenium实现自动登录博客园
Dec 16 Python
实现Python与STM32通信方式
Dec 18 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
Mar 27 Python
解决windows下python3使用multiprocessing.Pool出现的问题
Apr 08 Python
python时间序列数据转为timestamp格式的方法
Aug 03 Python
详解BeautifulSoup获取特定标签下内容的方法
Dec 07 Python
如何使用PyCharm及常用配置详解
Jun 03 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
thinkPHP分页功能实例详解
2017/05/05 PHP
php实现映射操作实例详解
2019/10/02 PHP
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
Bootstrap实现登录校验表单(带验证码)
2016/06/23 Javascript
Bootstrap Table使用心得总结
2016/11/29 Javascript
angularjs下拉框空白的解决办法
2017/06/20 Javascript
vue如何在自定义组件中使用v-model
2018/05/14 Javascript
深入浅出理解JavaScript闭包的功能与用法
2018/08/01 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
Python通过poll实现异步IO的方法
2015/06/04 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
python中reduce()函数的使用方法示例
2017/09/29 Python
图解Python变量与赋值
2018/04/03 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
2019/08/06 Python
Python requests上传文件实现步骤
2020/09/15 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
2020/12/31 Python
css sprite简单实例
2016/05/23 HTML / CSS
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
Nike爱尔兰官方网站:Nike.com (IE)
2018/03/12 全球购物
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
linux系统都有哪些运行级别
2016/03/26 面试题
个人找工作的自我评价
2013/10/17 职场文书
行政主管岗位职责
2015/02/03 职场文书
学习十八大的感悟
2015/08/11 职场文书
检讨书怎么写?
2019/06/21 职场文书
浅谈Nginx 中的两种限流方式
2021/03/31 Servers
Python读取文件夹下的所有文件实例代码
2021/04/02 Python
golang goroutine顺序输出方式
2021/04/29 Golang
Navicat for MySQL的使用教程详解
2021/05/27 MySQL
SpringAop日志找不到方法的处理
2021/06/21 Java/Android
python pygame 开发五子棋双人对弈
2022/05/02 Python