豆瓣登录
# -- coding:gbk --import re
import urllib.request
import urllib.parse
import http.cookiejar
loginurl = urllib.request.Request('https://accounts.douban.com/passport/login', headers={'User-agent': 'Mozilla/5.0'})
cookie = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookie))
data = {
"form_email":"your email",
"form_password":"your password",
"source":"index_nav"
}
data = {}
data['form_email'] = 'sxxxx'
data['form_password'] = 'suxxxxxx'
data['source'] = 'index_nav'
#从首页提交登录
response=opener.open(loginurl, urllib.parse.urlencode(data).encode('utf-8'))
#验证成功跳转至登录页
if response.geturl() == "https://accounts.douban.com/passport/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=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() == "https://www.douban.com/":
print('login success ! ')
else:
print('Failed')
else:
print('3')
else:
print(2)
else:
print(1)
为什么获取不了imgurl? 本帖最后由 1q23w31 于 2020-8-7 21:03 编辑
哪有验证码?代码过时了吧 1q23w31 发表于 2020-8-7 20:34
哪有验证码?代码过时了吧
按照课后习题答案敲的。
可能过时了。。 sharank 发表于 2020-8-7 22:17
按照课后习题答案敲的。
可能过时了。。
那就学习思路就好了 @zltzlt 请求结帖 1q23w31 发表于 2020-8-8 20:11
@zltzlt 请求结帖
收到{:10_323:} zltzlt 发表于 2020-8-8 20:12
收到
已解决?我还在困扰中,怎么就已解决了? 原来是过时了{:10_266:} 这是用代码登录?{:10_245:}
页:
[1]