有时候,我们在爬取一些网页之前必需要登录该网站,比如说我想爬取我的人人网主页内容。

1、打开:www.renren.com

2、输入用户名和密码,登录网站18679030315

3、个人首页,如下图:

那么直接请求:http://www.renren.com/964508591/profile 可不可以呢?我们试一下。

  打印出来的东西没有获取到个人信息,通过上述代码,我们请求到的数据其实是人人网首页的数据,这跟我们“平时浏览一些内容的时候,网页自动跳转到登录页”的情况是一样的。

  那么如何在爬取“个人主页”的信息呢?这个时候我们需要加一些身份信息,在哪儿加?在Cookie。Cookie中保存了用户的登录状态。

复制Cookie信息,添加到headers中,然后再发起请求:

代码:

输出结果:

将显示个人信息,表示请求到我想要的数据了。

代码如下:

import requests

# 定义爬取url地址
base_url = 'http://www.renren.com/964508591/profile' # 定义headers,cookie保存了登录信息(用户名和密码)
headers = {
"Cookie": "anonymid=jsfnsdta-9wkx8y; "
"depovince=GW; "
"jebecookies=8b9ae51c-9f33-4411-91e1-8cf089c4038b|||||; "
"_r01_=1; "
"JSESSIONID=abcSP3j-rLG5T4RFC1tKw; "
"ick_login=3aa429d9-fef7-4f32-87f0-6bed6e39881a; "
"_de=5F71EE4FAB787F2D9124C42004FCABA0; "
"p=9f3825923c315bb6a9600ef5179d781f1; "
"first_login_flag=1; "
"ln_uact=18679030315; "
"ln_hurl=http://head.xiaonei.com/photos/0/0/men_main.gif; "
"t=c516b899cbe52eb456b80bd3a71771611; "
"societyguester=c516b899cbe52eb456b80bd3a71771611; id=964508591; "
"xnsid=ec298a5b; "
"ver=7.0; "
"loginfrom=null; "
"jebe_key=0c6ad138-7b82-45f2-98af-653a8c1fbd41%7C8562fb69c05d6f5ab11983a626d37548%7C1550816017179%7C1%7C1550816017961; "
"wp_fold=0"
} # 发起携带cookie的请求
response = requests.get(base_url, headers=headers)
print(response.text)

获取Cookies 和 Sission来请求

1、Cookies

如果一个响应中包含了cookie,那么我们可以利用 cookies参数拿到:

代码如下:

import requests

# 定义爬取url地址
base_url = 'Https://www.baidu.com/' # 发起请求
response = requests.get(base_url) # 获取cookie
cookiejar = response.cookies # 从cookiejar中获取cookie信息
cookie = requests.utils.dict_from_cookiejar(cookiejar) print(cookie)

2、Session

  在 requests 里,session对象是一个非常常用的对象,这个对象代表一次用户会话:从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开。

  会话能让我们在跨请求时候保持某些参数,比如在同一个 Session 实例发出的所有请求之间保持 cookie 。

  每次通过查找cookie很麻烦,需要复制粘贴,所以使用sessio来完成登录,只需要用户账号和密码就可以。

代码如下:

import requests

# 创建session对象
session = requests.session() # 定义账号和密码
data = {'email':'xxxxxx','密码':'xxxxxx'} # 将账号和密码写入session中
session.post('http://www.renren.com/PLogin.do', data=data) # 使用含有账号和密码的session发起请求
response = session.get('http://www.renren.com/964508591/profile') print(response.text)

人人网(cookie登录)的更多相关文章

  1. 爬虫模拟cookie自动登录(人人网自动登录)

    什么是cookie? 在网站中,HTTP请求时无状态的,也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是谁,cookie的出现就是为了解决这个问题,第一次登陆后服 ...

  2. Java爬虫——人人网模拟登录

    人人网登录地址:http://www.renren.com/ 此处登录没有考虑验证码验证码. 首先对登录方法进行分析 有两种方法. 一)在Elements中分析源码 发现登录点击后的事件是http:/ ...

  3. JMeter学习-018-JMeter 配置元件之-HTTP信息头管理器-实现 Cookie 登录

    之前写过一篇通过[HTTP Cookie管理器]实现登录态操作的文章,使用时需要配置每个键值对(如下图所示),相对来讲配置比较繁琐.其实,我们也可通过在[HTTP信息头管理器]添加 Cookie 信息 ...

  4. JMeter学习-012-JMeter 配置元件之-HTTP Cookie管理器-实现 Cookie 登录

    前文我们讲过了若何获取登录后的 Cookie 信息,不知如何获取登录 Cookie 的朋友,敬请参阅我之前写的博文:Fiddler-005-获取 Cookie 信息.参阅上篇文章,获取到 Cookie ...

  5. Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录

    1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...

  6. python3爬虫 - 利用浏览器cookie登录

    http://blog.csdn.net/pipisorry/article/details/47980653 爬虫爬网站不免遇到需要登录的问题. 登录的时候可能还会碰到需要填验证码的问题, 有的验证 ...

  7. python3爬虫 - cookie登录实战

    http://blog.csdn.net/pipisorry/article/details/47948065 实战1:使用cookie登录哈工大ACM网站 获取网站登录地址 http://acm.h ...

  8. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-12基于cookie登录授权认证并实现前台会员、后台管理员同时登录

    1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...

  9. vc++使用cookie登录网站

    以http://www.idc816.com为例 效果图: 1)先登录获取cookie,再使用cookie获取用户信息 2)记录cookie,关闭程序后重新运行程序,直接获取用户信息 使用Fiddle ...

  10. python爬虫-使用cookie登录

    前言: 什么是cookie? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密). 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想 ...

随机推荐

  1. cnpm与npm的区别

    原文地址:https://blog.csdn.net/chi1130/article/details/72773278 npm介绍 说明:npm(node package manager)是nodej ...

  2. sap 申请 新系统用户

    1:打开sap  logon, 进入到以下界面,connection上面 ,右键>add new entry 2: 搜索自己需要的系统名称. 3:一直next,直到完成 4: 双击该系统,进入以 ...

  3. abap特性

    1:实例成员是属于某一个对象的,静态成员属于整个类. 2:abap类中,可以定义三种不同类型的成员,分布是属性(如data),方法(method),事件(event). 3: abap中定义静态属性的 ...

  4. Linux文本编辑器之vim

    VIM 文本编辑器 vim/vi是Unix/Linux上最常用的文本编辑器而且功能强大.注意:只有命令,没有菜单 VIM工作模式 命令模式:又称为一般模式 编辑模式:又称为低行模式,命令行模式 插入命 ...

  5. python 类组合

    场景:有一辆车违章需要通知到车主 定义两个类车辆类和通知类,车辆类和通知类并没有共同点,但是要通知车主这两个类就有了关联,这时候可以把这两个类组合在一起 #!/usr/bin/python3 # -* ...

  6. jenkins 的一个BUG

    最近更新了一批jenkin插件,更新完问题来了全局设置无法保存了... 报错如下 Stack trace net.sf.json.JSONException: null object at net.s ...

  7. 2019.04.09 电商19 分析carmanage.py

    post(self,request)这个request是干嘛的 有是递归,他调用了那个getcarmanager函数返回的是另一个函数. 这另一个函数负责创建插入数据 def __init__(sel ...

  8. python tkinter Treeview 事件绑定

    def trefun(event): sels= event.widget.selection()#event.widget获取Treeview对象,调用selection获取选择对象名称 for i ...

  9. sqlmap常用技巧整理

    言 通过在乌云网上出现的很多SQL注入漏洞,因此来总结一下,大致使用SQLMAP所遇到的参数. 基本结构 基本SQLMAP的使用方式就如下所示,使用参数式的方式,按需求添加. 12 sqlmap.py ...

  10. MySQL.Linux.安装

    Linux 7.x.安装 MySQL 环境: linux是安装在虚拟机中的,宿主机是:win10系统.安装MySQL的时候,首先需要网络是通的(宿主机和虚拟机之间通信).相关配置,参见:虚拟机和宿主机 ...