导读热词
本文实例讲述了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('',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))
希望本文所述对大家的Python程序设计有所帮助。
相关文章
总结
以上是编程之家为你收集整理的python登录豆瓣并发帖的方法全部内容,希望文章能够帮你解决python登录豆瓣并发帖的方法所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250