|
|

楼主 |
发表于 2018-3-30 19:07:52
|
显示全部楼层
我的代码:
#登录豆瓣
# -- coding:gbk --
def main():
import re
import urllib.request
import urllib.parse
import http.cookiejar
print(0)
loginurl = 'https://www.douban.com/accounts/login'
print(1)
cookie =http.cookiejar.CookieJar()
print(2)
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor)
print(3)
data = {}
test={}
data['source']='index_nav' #没有的话登录不成功
data['form_email']='*******'
data['form_password']='********'
print(data)
#data=urllib.parse.urlencode(data).encode('utf-8') 使用者一句会导致后面添加验证码时出错
#从首页提交登录
response=opener.open(loginurl, urllib.parse.urlencode(data).encode('utf-8'))
print(response.read().decode('utf-8'))
#验证成功跳转至登录页
if response.geturl() == 'https://www.douban.com/accounts/login':
html=response.read().decode('utf-8')
print(html)
mycode=input('请输入:')
test['code']=mycode
#验证码图片地址
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('请输入图片上的验证码:')
data['captcha-id'] = captcha.group(1)
data['captcha-solution'] = vcode
data['user_login'] = '登录'
#提交验证码验证
response=opener.open(loginurl,urllib.parse.urlencode(data).encode('utf-8'))
''' 登录成功跳转至首页 '''
if response.geturl() == "https://www.douban.com/":
print('login success ! ')
else:
print(response.geturl())
点击运行之后IDLE中没有一点反应
|
-
|