最近想使用python在豆瓣电影上爬一下电影《教父》的影评,但非登录游客只能查看前10页的影评内容,如果想爬取更多影评,需要先模拟登录豆瓣。

我搜索了很多模拟登录的文章,但我由于欠缺网页方面的知识基础,并没有能够按照其步骤成功模拟登录,后来发现,是模拟登录需要提交的个人信息对应的关键字变了(后面会具体解释)。因此,我整理了一下自己模拟登录成功的详细步骤。

步骤一:安装爬虫所需的requests库

直接在命令行中输入 pip install requests,安装成功后import requests

步骤二:初始化变量

模拟登录时,我们需要先获得目标网站的网址;为了防止被识别出是爬虫,我们需要伪装自己的用户信息;我们还需要向目标网站提交个人信息(账号密码等)。

这三部分信息,我们可以用以下方式获取。

1.打开豆瓣网站,进入其登录界面,选择密码登录,输入账号和密码,注意:先不要点登录豆瓣!!!

2. 在豆瓣网登录界面,按F12打开Developer Tools,选择Network,选中Previous log,这样就可以查看我们的操作所对应的网页源代码,从而找到所需信息了。

2. 点击登录豆瓣,因为我的账号和密码是随便写的,所以登录不成功,但不影响我们查看信息。在Developer Tools界面,选择查看basic的Headers,在里面找到General下面的Request URL并复制,这才是我们模拟登录时的目标网址,而非我们平时认为的网页上的网址。

再找到Request Headers下面的User-Agent并复制,里面包含我们电脑的信息。

最后,在Form Data中找到我们的个人信息,并复制。

这样一来,需要向网站提交的信息,就搞定了。需要注意的是,豆瓣个人信息所对应的关键字不是一成不变的。在我查找资料的过程中,很多文章都说Form Data包含的信息是这样的:

这跟我们现在查看到的内容显然不同,如果使用旧的关键字提交信息肯定无法成功,因此,大家在模拟登录的过程中,最好先自己查看一下信息。

步骤三:提交登录请求

先将需要提交的请求写成代码:

url = 'https://accounts.douban.com/j/mobile/login/basic'

headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36

(KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}

data = {

'ck': '',

"name":'123456789',#用户名123456789,我瞎写的,大家填真实的就好

"password":'123456',#密码123456,我瞎写的,大家填真实的就好

'remember': 'false',

'ticket': '',

}

为了在之后爬取网页的过程中能一直保持登录状态,我们要用到requests库中的session来维持会话状态,对应的代码是:

s = requests.Session()

html = s.post(url,headers=headers,data=data)

步骤四:在登录状态下,访问豆瓣其他页面。

大家可以通过访问豆瓣个人主页,来保证自己已经成功登录。代码如下:

url = 'https://www.douban.com/people/57443010/'#这个网址是我的个人主页,大家换成自己的即可

html = s.get(url).text

print(html)

通过print(html),可以查看网页源代码,其中“个人主页”“我的订单”等都是登录后个人主页会显示的信息。当我们在网页源代码中看到如下信息的时候,就说明我们登录成功了。

步骤五:全部代码

import requests

# 用于维持登录会话,requests高级用法

s = requests.Session()

# 登录

def login():

#url ='https://accounts.douban.com/passport/login'

url = 'https://accounts.douban.com/j/mobile/login/basic'

headers={

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36

(KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',

}

data = {

'ck': '',

"name":'123456789',

"password":'123456',

'remember': 'false',

'ticket': '',

}

html = s.post(url,headers=headers,data=data)

return s,html

# 获取个人信息

def get_user_data(s):

url = 'https://www.douban.com/people/57443010/'

html = s.get(url).text

#print(html)

return html

if __name__ == '__main__':

s,html1 = login()

html2 = get_user_data(s)

总结:用requests库模拟登录十分方便,主要需要注意两个问题,一是使用session来维持会话,二是自己通过Developer Tools找到网页待提交信息。

在模拟登录时还会遇到验证码等比较高级的反爬虫机制,但豆瓣暂时还不需要每次登录时提交验证码,只在登录太频繁时才需要用验证码验证,如果大家在保证代码无误的情况下登录失败,可以考虑等待一段时间再尝试。

python登录豆瓣_手把手教你用python模拟登录豆瓣相关推荐

  1. 怎么用python自制计算公式_手把手教你用python制作简易计算器,能够记录你使用的情况...

    话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错: 接下来就仔细分析一下是如何制作的: 简易计算器 第一步:导入资源库 在过程中使用到了tkinter这个资源库,win+R ...

  2. python 靶心_手把手教你使用Python实战反欺诈模型|原理+代码

    原标题:手把手教你使用Python实战反欺诈模型|原理+代码 作者 | 萝卜 来源 | 早起Python(ID: zaoqi-python) 本文将基于不平衡数据,使用Python进行 反欺诈模型数据 ...

  3. 用python画皇冠_手把手教你用 Python 绘制酷炫的桑基图!

    原标题:手把手教你用 Python 绘制酷炫的桑基图! 作者 | 周志鹏 责编 | 郭 芮 最近,不止一次收到小伙伴的截图追问: "这个图叫什么???" "这个图真好看! ...

  4. python文本分类_手把手教你在Python中实现文本分类.pdf

    手把手教你在Python 中实现文本分类(附代码.数 据集) 引言 文本分类是商业问题中常见的自然语言处理任务,目标是自动将文本文件分到一个 或多个已定义好的类别中.文本分类的一些例子如下: • 分析 ...

  5. 如何用python开发游戏_手把手教你用Python完成一个控制台小游戏-阿里云开发者社区...

    很多人想学Python程序设计或者已经了解过一点Python程序设计基础,却没办法开发出一个项目. 今天,通过演示一个简单的控制台小游戏制作,手把手教你如何用Python编写一个游戏程序,即便你是个新 ...

  6. 利用python编写祝福_手把手|教你用Python换个姿势,送狗年祝福语

    春节既是一个阖家团圆的节日,也是一个集中问候亲朋好友.了解近况的机会.但是也有很多人过年也不能聚在一起,所以就会会选择发短信这一方式来表达自己的祝福.其中大多人都是复制转发,让人一眼就看穿,显得自己在 ...

  7. python广州地图_手把手教你用Python+可视化工具制作漂亮地图

    作者:J哥 这次呢,我想讲讲地图可视化的内容,以前我也写过用Python的内置库绘制地图,但总感觉不够美观.如何才能在短时间内制作漂亮的可视化地图呢,我觉得Python+可视化工具是不错的选择. 以下 ...

  8. python画图宽度_手把手教你用 Python 绘制酷炫的桑基图!

    作者 | 周志鹏 责编 | 郭   芮 最近,不止一次收到小伙伴的截图追问: "这个图叫什么???" "这个图真好看!!!怎么画啊?" ...... 笔者本没有 ...

  9. python私人定制_手把手教你学python第十五讲(魔法方法续私人“定制”)

    python无处不对象的深刻理解 前面写了这么多,我觉得有必要从一个大的层面,也就是OO来看问题的本质.只要你调用对象的语法是合乎python的习惯的,那就是可以的,我们以前从来没有像下面这么写过,对 ...

  10. python 人脸识别_手把手教你用python实现人脸识别,识别率高达99.38%

    之前本人在实训时需要实现人脸识别这个功能,当时是借助百度的人脸识别api,这个需要注册账号,还需要用到密钥.操作起来也不麻烦,代码也不多.就是如果网速跟不上,返回的结果时,速度有点慢.当时也没那么在意 ...

最新文章

  1. 在redhat9上安装firefox
  2. micropython是啥 知乎_micropython入门教程
  3. //随机生成1位大写字母\小写字母\数字
  4. STM32常见错误error: #268: declaration may not appear after executable statement
  5. 第六届蓝桥杯试题c/c++B组5
  6. 机器人学基础(三):机器人运动学
  7. 2013 Esri全球用户大会QA之元数据支持
  8. ZCU106开发板MIPI摄像头开发的示例程序【详细讲解】
  9. base URL是什么意思?干什么用的?
  10. 物联网毕设(智能灌溉系统 -- Android端)
  11. 关于hive当中的double的数据类型
  12. 如何使用帆软BI直接分析明道云数据
  13. Dispatch I/O
  14. MATLAB app designer/GUI 学习笔记(一)
  15. ERP销售人员快速上手
  16. EPC附着及IMS PDN建立过程
  17. 计算机毕业设计JAVA海滨体育馆管理系统mybatis+源码+调试部署+系统+数据库+lw
  18. 晋升答辩,leader嫡系拿着我和另一个同事的项目去答辩,关键我们三个人是同一组答辩,这也太恶心了吧?...
  19. MMC卡的安装与使用注意事项
  20. 郭明錤连发8条猛料!爆苹果MR头显最新进展

热门文章

  1. 英语四级——常考语法【不断更新中】
  2. 女生自学计算机方向建议
  3. 淘宝超时确认收货 是 如何实现?
  4. 家庭问题(信息学奥赛一本通 - T1362)
  5. mysql删表数据不删表结构_在SQL中删除表数据和删除表结构有什么不同
  6. 阿法狗之后的围棋世界
  7. 系统漏洞解析含flag
  8. 计算机设计大赛软件应用开发作品,2019年(第12届)中国大学生计算机设计大赛软件应用与开发类总决赛报道...
  9. 微信分享,获取分享点击事件,登录后才可以分享
  10. AutoIt教程资源汇总