【Python爬虫历程】使用Cookie来模拟登陆

前面讲了cookie的概念,现在来实战操作一下:直接访问人人网代码女神的主页

 

1.如果不使用cookie直接来访问请求:

在 网页直接访问女神主页直接会弹到登录页面。

女神主页URL:http://www.renren.com/256450404/profile

代码示例:

#encoding:utf-8

#代码女神赵洁琼主页:http://www.renren.com/256450404/profile
#人人网登录URL:http://www.renren.com/Plogin.do

from urllib import request

#1.不使用cookie访问女神主页

nvshen_url="http://www.renren.com/256450404/profile"

headers={
    'User-Agent':"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4098.3 Safari/537.36"
}

req=request.Request(url=nvshen_url,headers=headers)
resp=request.urlopen(req)
#print(resp.read())

#将读取的内容写入html文件中

with open('renren.html','w') as fp:
    #write函数必须写入一个str的数据类型
    #resp.read()读出来的是一个bytes数据类型
    #bytes ->decode -> str
    #str ->encode ->bytes
    fp.write(resp.read().decode('utf-8'))

 获得的结果html文件打开如下图,虽然有点乱码, 但是还是能看出来 是登录页面,说明要想进入女神主页,还是需要登录的cookie进行请求访问才能实现。

如果出现下方中文乱码的 情况,需要将保存的html文件UTF-8编码改为国标编码,GB2312之类的,如下下图所示

<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />

2.使用cookie来进行访问

 上一段不用cookie直接访问女神的主页,会直接弹出到登录页,现在我们尝试加上登录之后的cookie进行登录,在request header中找到cookie

代码示例

#encoding:utf-8

#代码女神赵洁琼主页:http://www.renren.com/256450404/profile
#人人网登录URL:http://www.renren.com/Plogin.do

from urllib import request

#2.使用cookie访问女神主页

nvshen_url="http://www.renren.com/256450404/profile"

headers={
    'User-Agent':"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4098.3 Safari/537.36",
    'Cookie':'anonymid=k8cdsuqh-srt2i0; depovince=GW; _r01_=1; taihe_bi_sdk_uid=bfe301037dffbe108487b72db5bf7e6b; jebe_key=6e985591-b125-4e8c-a086-6ffa0d70d0c2%7C50f2c4113393fea64a81ef35b552f056%7C1585446344625%7C1%7C1585446346127; jebe_key=6e985591-b125-4e8c-a086-6ffa0d70d0c2%7C50f2c4113393fea64a81ef35b552f056%7C1585446344625%7C1%7C1585446346129; JSESSIONID=abcB_WFVogSDj9AkbRLex; ick_login=b047f395-23df-4b1c-bc91-912f67b0f2fa; taihe_bi_sdk_session=d4e78eb86e06c00aa0c3e1487f6275a8; t=ce3517a93cf84e7d1e51f9b959106a9c6; societyguester=ce3517a93cf84e7d1e51f9b959106a9c6; id=974111896; xnsid=da5394c8; jebecookies=ab44e1ca-1fb8-4a83-8c39-9bd813f4d802|||||; ver=7.0; loginfrom=null; wp_fold=0'
}

req=request.Request(url=nvshen_url,headers=headers)
resp=request.urlopen(req)
#print(resp.read())

with open('renren2.html','w',encoding='utf-8') as fp:
    #write函数必须写入一个str的数据类型
    #resp.read()读出来的是一个bytes数据类型
    #bytes ->decode -> str
    #str ->encode ->bytes
    fp.write(resp.read().decode('UTF-8'))

打开生成的renren2.html文件,如果还是出现中文乱码,还是 一样的解决办法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Demo.demo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值