爬虫之Cookie模拟账号登陆

问题描述

比如像百度,知乎等必须要登录才可以爬取信息的网站,我们必须要模拟自己的账号进行登录。

Cookie在百度百科中的解释是:

是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息

通俗点说,Cookie就是网站服务器验证登录的一种手段,第一次登录分配一个Cookie代码。Cookie代码有一定的期限,超过规定的期限就会失效,必须重新登陆;但如果在Cookie规定的期限内,就可以免登录。

只要我们把自己的Cookie代码拷贝下来,就可以爬取相关网页的信息。

Cookie在哪里?

以知乎登录为例
打开知乎的官网并登录自己的账号
按下F12键查看源代码
图一

在请求标头中可以看到对应的user-Agent 和 Cookie的相关参数。

拷贝这两个键值对

Cookie和user-Agent都是在请求页面时使用的,所以在创建请求对象的时候就要传入这两个参数

from urllib import request
url = "http://www.zhihu.com/"
headers = {

    "user-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362",
    
    "Cookie":"HMVT=d8bfb560f8d03bbefc9bdecafc4a4bf6|1588678558|4d9c0095d55f98245e83c4b5879def56|1588679068|; HMACCOUNT=6AE3D2C06A2F884A; BDRVFR[SL8xzxBXZJn]=mk3SLVN4HKm; BDRCVFR[8gzLr2xelNt]=IdAnGome-nsnWnYPi4WUvY; session_id=1588678434781; session_name=www.baidu.com; ZD_ENTRY=baidu; BAIDUID=5553F057D752122CF0241A3100A88A7F:FG=1; BIDUPSID=3AD95C55E34E1F69FC092606BE26900F; PSTM=17619754; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; BDUSS=5wRHlkTmRNQzhwQlY0cHIzQ1VBd2l-QVZpeXUtMjFNQTFWY01RT1pVaUREOXBlRUFBQUFBJCQAAAAAAAAAAAEAAAB-M2~oYmluZnRtMzIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIOCsl6DgrJeZ3"
}

req = request.Request(url, headers=headers)
response = request.urlopen(req).read().decode()
print(response)

ok

大功告成,可以登录自己的账号了,账户名是binftm32,如下图:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值