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实现数独游戏 java简单实现数独游戏
Mar 30 Python
pandas实现选取特定索引的行
Apr 20 Python
Python实现的个人所得税计算器示例
Jun 01 Python
Python pandas DataFrame操作的实现代码
Jun 21 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
Jul 03 Python
python 用户交互输入input的4种用法详解
Sep 24 Python
Python for循环搭配else常见问题解决
Feb 11 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 Python
Django CBV模型源码运行流程详解
Aug 17 Python
python+requests接口自动化框架的实现
Aug 31 Python
python设置中文界面实例方法
Oct 27 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
Nov 06 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中使用接口实现工厂设计模式的代码
2012/06/17 PHP
PHP curl伪造IP地址和header信息代码实例
2015/04/27 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
Javascript延迟执行实现方法(setTimeout)
2010/12/30 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
JS实现仿京东淘宝竖排二级导航
2014/12/08 Javascript
javascript基本包装类型介绍
2015/04/10 Javascript
js中this用法实例详解
2015/05/05 Javascript
jQuery 遍历函数详解
2015/07/05 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
基于JavaScript实现右键菜单和拖拽功能
2016/11/28 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
2017/12/11 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
Vue路由history模式解决404问题的几种方法
2018/09/29 Javascript
微信小程序swiper实现滑动放大缩小效果
2018/11/15 Javascript
常见的浏览器存储方式(cookie、localStorage、sessionStorage)
2019/05/07 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
Vue实战教程之仿肯德基宅急送App
2019/07/19 Javascript
Python中异常重试的解决方案详解
2017/05/05 Python
python selenium执行所有测试用例并生成报告的方法
2019/02/13 Python
详解pytorch 0.4.0迁移指南
2019/06/16 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
python打包多类型文件的操作方法
2020/09/21 Python
Sunglasses Shop瑞典:欧洲领先的太阳镜网上商店
2018/04/22 全球购物
协议书怎么写
2014/04/21 职场文书
员工安全责任书范本
2014/07/24 职场文书
自愿离婚协议书范文2014
2014/10/12 职场文书
三八妇女节慰问信
2015/02/14 职场文书
毕业赠语大全
2015/06/23 职场文书
结婚司仪主持词
2015/06/29 职场文书
会计岗位工作总结
2015/08/12 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书
导游词之长城八达岭
2019/09/24 职场文书
Python爬虫:从m3u8文件里提取小视频的正确操作
2021/05/14 Python