python参考手册 豆瓣_python登录豆瓣,发帖

1.[代码][Python]代码

# -- 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('captcha', html)

if imgurl:

url=imgurl.group(1)

#将图片保存至同目录下

res=urllib.urlretrieve(url, 'v.jpg')

#获取captcha-id参数

captcha=re.search('' ,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('', html)

p["topic_id"] = m.group(1)

m= re.search('', 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))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值