欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python登录豆瓣_python登录豆瓣,发帖

发布时间:2024/7/23 python 52 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python登录豆瓣_python登录豆瓣,发帖 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

学习了urllib、urllib2及cookielib常用方法的使用登录豆瓣,由于有验证码,采取的办法是将验证码图片下载到同目录下,查看图片后输入验证码即可登录、发帖帖子内容写死在代码中了

[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('', 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))

http://outofmemory.cn/code-snippet/3900/python-denglu-douban-fatie

总结

以上是生活随笔为你收集整理的python登录豆瓣_python登录豆瓣,发帖的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。