鱼C论坛

 找回密码
 立即注册
查看: 1993|回复: 11

爬虫豆瓣客户端登陆求助

[复制链接]
发表于 2019-10-27 14:20:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
课后作业:54讲写一个登录豆瓣的客户端。

小甲鱼的答案中涉及到验证码,但是现在豆瓣网登陆不需要验证码,输入密码和账号后直接登陆跳转的登录成功的页面

因为太多知识没学过,自己查资料搞的,有些东西可能理解不到位,下面是我自己写的:
from urllib import request, parse
from http import cookiejar

# 创建cookiejar实例对象
cookie=cookiejar.CookieJar()


cookie_handle=request.HTTPCookieProcessor(cookie)
http_handle=request.HTTPHandler()
https_handle=request.HTTPSHandler()
opener=request.build_opener(cookie_handle,https_handle,http_handle)
opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36')]

def login():
    url='https://accounts.douban.com/passport/login'
    data={'from_email':'xxxxx',
        'from_password':'xxxxx,'source':'index_nav'}
    data = parse.urlencode(data).encode('utf-8')
    req = request.Request(url,data=data)
    resp=opener.open(req)   ##我理解为页面自动跳转
    feed=resp.read().decode()     
    print(resp.geturl())
    print(feed)

if __name__ == '__main__':
    login()

我的理解是:豆瓣既然输入密码和账号后自动跳转,反馈得到的resp就应该是登录成功后的页面,但是程序显示的还是登录界面
请问,我是哪里理解错了,需要添加那些东西,能否帮忙修改一下代码,谢谢!!!
PS:xxxx是我的账号和密码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-28 11:19:02 | 显示全部楼层
本帖最后由 XiaoPaiShen 于 2019-10-28 12:43 编辑

用 requests 模块,其中有session可以传入用户名和密码,用来授权和验证

  1. import requests

  2. def main():
  3.   url_basic = 'https://accounts.douban.com/j/mobile/login/basic'
  4.   url = 'https://www.douban.com/'
  5.   ua_headers = { "User-Agent":'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)'}
  6.   data = {
  7.     'ck': '',
  8.     'name': 'xxxxx',
  9.     'password': 'xxxxx',
  10.     'remember': 'false',
  11.     'ticket': ''
  12.   }

  13.   s = requests.session()
  14.   s.post(url=url_basic, headers=ua_headers, data=data)
  15.   response = s.get(url=url, headers=ua_headers)
  16.   with open('douban.html' , 'wb') as f:
  17.     f.write(response.content)

  18. if __name__ == '__main__':
  19.   main()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-29 15:51:13 | 显示全部楼层
XiaoPaiShen 发表于 2019-10-28 11:19
用 requests 模块,其中有session可以传入用户名和密码,用来授权和验证

非常感谢,学习到了···
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-29 16:21:12 | 显示全部楼层
XiaoPaiShen 发表于 2019-10-28 11:19
用 requests 模块,其中有session可以传入用户名和密码,用来授权和验证

请问,为甚么你用的是这个地址https://accounts.douban.com/j/mobile/login/basic, 这个地址在网页是打不开的啊,你是哪里获取的。另外为什么我直接用https://accounts.douban.com/passport/login这个登录网址不行,得到的还是原网址不会直接跳转??
谢谢~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-29 22:14:35 | 显示全部楼层
本帖最后由 XiaoPaiShen 于 2019-10-29 22:18 编辑
ChuckCheng 发表于 2019-10-29 16:21
请问,为甚么你用的是这个地址https://accounts.douban.com/j/mobile/login/basic, 这个地址在网页是打 ...


我费劲巴拉的写了那么多,回帖奖励也没得着...你好歹给打个赏,我也好有积极性。
这个网址是要用post方法访问,返回json数据。
douban.jpg

评分

参与人数 1鱼币 +5 收起 理由
ChuckCheng + 5 不好意思,哈哈,平时发帖比较少,操作不熟

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-6 17:59:13 | 显示全部楼层

回帖奖励 +3 鱼币

想赚点鱼币,来晚了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-21 14:32:57 | 显示全部楼层

回帖奖励 +3 鱼币

我就是来确定下豆瓣是不是不用验证码了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-23 10:10:50 | 显示全部楼层
目前可以使用手机号码、第三方帐号(微信、微博)登录注册,不支持邮箱注册。
过去使用邮箱注册的用户,仍然可以正常登录,但我们建议绑定手机号码,会使登录更便捷,也有助于帐号安全。


手机注册的是不是可以放弃了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-24 10:43:22 | 显示全部楼层
围观学习,简洁的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-9 21:25:21 | 显示全部楼层

回帖奖励 +3 鱼币

可能没跳转
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-11 08:35:20 | 显示全部楼层
来看下顺便蹭鱼币~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 12:10:59 | 显示全部楼层
为啥上面那个大佬的代码cookjar都没有载入啊是让我们自己载入吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-14 10:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表