马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 调皮博士 于 2017-1-8 18:19 编辑 # -- coding:utf-8- --
import re
import urllib,http.cookiejar
loginurl = 'https://www.douban.com/accounts/login'
cookie = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor)
params = {
"form_email":"330xxxxxx@qq.com",
"form_password":"bobxxxxxxxxxxxxxx",
"source":"index_nav"
}#没有的话登录不成功
#从首页提交登录
response=opener.open(loginurl, urllib.parse.urlencode(params).encode('utf-8'))
#验证成功跳转至登录页
if response.geturl() == "https://www.douban.com/accounts/login":
html=response.read().decode('utf-8')
#验证码图片地址
imgurl=re.search('<img id="captcha_image" src="(.+?)" alt="captcha" class="captcha_image"/>', html)
if imgurl:
url=imgurl.group(1)
#将图片保存至同目录下
res=urllib.request.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.parse.urlencode(params).encode('utf-8'))
''' 登录成功跳转至首页 '''
if response.geturl() == "http://www.douban.com/":
print('login success ! ')
else:print('登录不成功')
如上,为参考答案后修改的程序,基本上和答案差不多了,可运行还是提示登录不成功。
用response.urlget()查得到的是‘http://www.douban.com’
帐号密码那里我试过填自己的帐号密码也试过不填就照抄原文,结果一样。
我怀疑是source=‘index_nav’这里有问题,望大牛帮我看看什么原因。 |