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 相关文章推荐
分享Pycharm中一些不为人知的技巧
Apr 03 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
May 30 Python
python3正则提取字符串里的中文实例
Jan 31 Python
python+pyqt5实现图片批量缩放工具
Mar 18 Python
Python符号计算之实现函数极限的方法
Jul 15 Python
python3.x提取中文的正则表达式示例代码
Jul 23 Python
numpy求平均值的维度设定的例子
Aug 24 Python
什么是python的必选参数
Jun 21 Python
利用Vscode进行Python开发环境配置的步骤
Jun 22 Python
Python 使用生成器代替线程的方法
Aug 04 Python
python爬取代理IP并进行有效的IP测试实现
Oct 09 Python
python 用opencv实现图像修复和图像金字塔
Nov 27 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执行速度全攻略(下)
2006/10/09 PHP
在MongoDB中模拟Auto Increment的php代码
2011/03/06 PHP
php去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
PHP无限分类(树形类)的深入分析
2013/06/02 PHP
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
通过实例解析PHP数据类型转换方法
2020/07/11 PHP
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
firefo xml 读写实现js代码
2009/06/11 Javascript
JavaScript Event事件学习第一章 Event介绍
2010/02/07 Javascript
JS烟花背景效果实现方法
2015/03/03 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
react 国际化的实现代码示例
2018/09/14 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
2019/02/22 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
2019/10/24 Javascript
[02:05]2014DOTA2国际邀请赛 BBC外卡赛赛后总结
2014/07/09 DOTA
[01:08:48]LGD vs OG 2018国际邀请赛淘汰赛BO3 第三场 8.25
2018/08/29 DOTA
python追加元素到列表的方法
2015/07/28 Python
Python连接PostgreSQL数据库的方法
2016/11/28 Python
Python基于plotly模块实现的画图操作示例
2019/01/23 Python
浅谈Python爬虫基本套路
2019/03/25 Python
Django设置Postgresql的操作
2020/05/14 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
英国香水店:The Perfume Shop
2017/03/27 全球购物
农村婚礼证婚词
2014/01/10 职场文书
质量保证书范本
2014/04/29 职场文书
六一儿童节活动总结
2014/08/27 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
小学优秀教师材料
2014/12/15 职场文书
部门经理助理岗位职责
2015/04/13 职场文书
论文评审意见
2015/06/05 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
教你使用vscode 搭建react-native开发环境
2021/07/07 Javascript