|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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’这里有问题,望大牛帮我看看什么原因。 |
|