python登录豆瓣并发帖的方法

 更新时间:2015年07月08日 11:39:40   作者:小刚1  
这篇文章主要介绍了python登录豆瓣并发帖的方法,涉及URL模拟登陆及cookie的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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 Fire中两种命令行参数灵活设置方式详解

    Python Fire中两种命令行参数灵活设置方式详解

    Python的Fire库,一个用来生成命令行工具的的库,这篇文章主要针对命令行参数,补充两种更加灵活的设置方式,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • Python批量处理PDF图片的操作指南(插入、压缩、提取、替换、分页、旋转、删除)

    Python批量处理PDF图片的操作指南(插入、压缩、提取、替换、分页、旋转、删除)

    图片是 PDF 文档的核心元素之一,它们不仅能够增强文档的视觉吸引力,还能有效传达信息,帮助读者更好地理解内容和主题,在实际操作中,我们常需要对PDF中的图片进行多种处理,这篇文章将详细介绍如何使用Python在PDF中实现图片插入、提取、替换、压缩等操作
    2025-04-04
  • 两个很实用的Python装饰器详解

    两个很实用的Python装饰器详解

    这篇文章主要为大家介绍了Python的装饰器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助,希望能够给你带来帮助
    2021-11-11
  • 在django中图片上传的格式校验及大小方法

    在django中图片上传的格式校验及大小方法

    今天小编就为大家分享一篇在django中图片上传的格式校验及大小方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python2写csv文件中文乱码问题及解决方法

    Python2写csv文件中文乱码问题及解决方法

    python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode、decode,这篇文章给大家介绍Python2写csv文件中文乱码问题及解决方法,感兴趣的朋友跟随小编一起看看吧
    2022-11-11
  • Python爬虫中IP池的使用小结

    Python爬虫中IP池的使用小结

    在网络爬虫的世界中,IP池是一个关键的概念,它允许爬虫程序在请求网页时使用多个IP地址,从而降低被封禁的风险,提高爬虫的稳定性和效率,本文将深入探讨Python爬虫中IP池的使用,以及如何构建和维护一个可靠的IP池,感兴趣的朋友一起看看吧
    2024-01-01
  • Python turtle绘图教程之七段数码管显示数字和字母

    Python turtle绘图教程之七段数码管显示数字和字母

    这篇文章主要给大家介绍了关于Python turtle绘图教程之七段数码管显示数字和字母的相关资料,Python是一种流行的编程语言,可用于编写各种类型的程序,在数码管显示器上数字8由7条不同的线条组成,需要的朋友可以参考下
    2023-10-10
  • pytorch transform数据处理转c++问题

    pytorch transform数据处理转c++问题

    这篇文章主要介绍了pytorch transform数据处理转c++问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 如何卸载python插件

    如何卸载python插件

    在本篇文章里小编给大家分享了关于python插件如何卸载的相关文章,需要的朋友们可以参考下。
    2020-07-07
  • Python的索引与切片原来该这样理解

    Python的索引与切片原来该这样理解

    这篇文章主要为大家详细介绍了Python的索引与切片,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02

最新评论