requests库中session实现共享cookie访问人人网

#在requests库中,提供了session可以让我们达到共享cookie的效果

1.我想要达到的效果

  • 1.在浏览器中输入 url = http://www.renren.com 发现给我们跳转到了登录页面,而登录之后再次访问会定位到我们的个人主页
  • 2.所以我的目的是利用session先登录账号保存cookie , 然后访问我们的个人主页

2.过程

  • 1.准备好url、headers、以及data
    ········在data中我要输入账号和密码,因为我知道form表单的提交账号密码的方式是键值对,所以这里我需要去找一下对应键的名称是什么:

    • ①我先点击输入框,然后检查元素
      在这里插入图片描述
    • ②可以看到用户名为email
      在这里插入图片描述
      同理获取密码为password
      所以我们的data数据就为 email:xxx 和 password:yyy
  • 2.写代码

      #第一次登录并获取cookie信息
      url2 = "http://www.renren.com"
      headers = {
          'user-agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'
      }
      data = {
          'email': 'hahaha021',
          'password': 'hahaha021'
      }
      session.post(url=url2, headers=headers, data=data)
      #(┬_┬)第二次登录进入到个人主页
      response3 = session.get(url=url2, headers=headers)
      #获取返回的状态码  期待为200
      print(response3.status_code) 
      #为了能够比较好的看到效果,我将返回的页面写入到本地文件
      with open('session_renren2.html', 'w', encoding='utf-8') as temp:
      	temp.write(response3.text)
    

3.查看结果

打开html,发现获取的页面仍然是登录页面

这说明我们第一次登录出问题了,没有登录上

百度了一下,发现别人的代码访问的都是访问www.renren.com/PLogin.do

再次F12,审查元素,观察form表单的action一项
在这里插入图片描述
O(∩_∩)O
如果我们第一次访问renren.com,其实只是跳转到了登录页面,这个action可以理解为我们输入完账号密码后点击登录的那个动作,而我们要模拟先登录也就必然是向这个url发送请求了

4.代码修正

url2 = "http://www.renren.com/PLogin.do"

只需要修改url的地址即可

5.查看结果

生产的html文件已经是我期望的人人网个人主页了 ·ye

##其实本来我是想要登录知乎网的,但是我看了知乎登录界面的form表单,不是我理解的样子,所以我还需要去研究一下····

猜你喜欢

转载自blog.csdn.net/shwwns/article/details/89442706