【爬虫学习】实战篇2:知乎cookie登录

本文详细介绍了如何使用Python的urllib库进行不带cookie和带cookie的知乎登录爬虫,展示了嵌入cookie后获取完整HTML内容的重要性。
摘要由CSDN通过智能技术生成

        今天我们使用urllib库来实现登录知乎的目标。

        登录知乎是需要用户输入自己的账号和密码的,我们可以先看下若不嵌入cookie的情况,我们爬取到的html数据是怎么样的:

一、不嵌入cookie的爬虫

        先说明下,我们现在登录知乎的页面,因为已经提前输入了账号和密码,因此主页是下图这样:

        代码如下:

from urllib import request
# 引入ssl,取消全局ssl认证:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

# 设置好url
url = 'https://www.zhihu.com/'
# 设置好headers
headers = {
            'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
            }
# 命名一个变量resp用于接收Requst类
resp = request.Request(url,headers=headers)
# 再用urlopen函数打开resp
resp_1 = request.urlopen(resp)
# 输出我们获取到的resp_1的html源代码
print(resp_1.read().decode('utf-8'))

        运行上述代码,html源代码结果如下:

         html源代码的返回结果,并未出现知乎首页的那些标题信息,而是让我们登录知乎。

二、嵌入cookie的爬虫

        操作非常简单:在上面代码中,headers中嵌入cookie信息即可,cookie的信息直接在网页的Request Headers中可以查询到(若不知道如何查询,可看我的《【爬虫实战】5、cookie》的文章)。修改后的代码如下:

from urllib import request
# 引入ssl,取消全局ssl认证:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

# 设置好url
url = 'https://www.zhihu.com/'
# 设置好headers
headers = {
            'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
            'cookie':'_zap=cccbc1b5-b13d-4305-acf8-8eca4576a9df; d_c0=ASATLCVEqRePTgxK-KGTDv5JOyngEEur7lc=|1699276253; _xsrf=20952ec3-1958-4760-9fd0-49228793fc98; Hm_lvt_98beee57fd2ef70ccdd5ca52b9740c49=1706322709; SESSIONID=c7l5yUekLLEgmvWN8WWvyDj1KxxqgfmQyTDmF6HG9ad; __snaker__id=X1EBmGXbJTrA5tM9; JOID=VV0VBkvqIW3eDfPLJuikcnUztdw5ixME7nOkq0ihby28ZYKebfhK2bkI9MsmkRBr6erKo1xSFxmCDW1bhQ_m2p8=; osd=UVkcB0LuJWTfBPfPL-mtdnE6tNU9jxoF53egokmoaym1ZIuaafFL0L0M_covlRRi6OPOp1VTHh2GBGxSgQvv25Y=; gdxidpyhxdE=Aq2nvy4bOa4%2B7H3oBRQMKTdQ9VjsKGhmvHwrQirzZxwJCgmHEOQ4fTAzDAWZ1aEo5bmLkscxSqO0dBOicob5eVqIlnrs%5Cm9gXujfTspv%5C42TG%2BgjRUbQfU3Vm0zpN6SEw0Rm%5CVWYbURvSPTKBIrauAP6Yg%5CGyohNo%2FCSiMcuSykGcjQG%3A1706323609902; captcha_session_v2=2|1:0|10:1706322714|18:captcha_session_v2|88:cHFnR1Z5S0VxTk1iZnJVQVJUZTFlakZ3UGtFWGJQS1FMakRXaTNycndpeXRicU41Q2FlMmRXSFBUTm9BYzZPSQ==|6c220ed0ebfd690c33f85c4977ac51639778abcfffdb43bef3dd6d2b5c447294; captcha_ticket_v2=2|1:0|10:1706322726|17:captcha_ticket_v2|728:eyJ2YWxpZGF0ZSI6IkNOMzFfMmdLRnA0Klc1cTRiNDlZMU9wS0ZzMkpHWk9KTUZZS3ZQMl9SKjkxelc2WUFwNGZDckZHOU9PV2xOSWM5UldraHlKNTVxUmN3bkZaajhxb0pEYmx6UTZtbnJqeU5ibTNkSFI0OG9Hb2tPKkJ2OFRRM0VlNmppRU9nV3gqalpyKkNSZ1JvS1Q1cXNBdDhRVzFvUUFLNWdtcDJRNlpWNmdPRXV6dkNpdk1CVTVrYTR6T2RzT3dlV0lMODRGSlJ1NFFnSmVPZzJzc2J3QlphelNIZXVxQlFTSFlUMWR5UXhIWUljTktBQ0tGUEZJMmE0cm54c0JsdGlPMmdxalZMRFQ5cVJOQWNIQzFBazlYcktPajZLRDVXRHIwUk4wazFZYTZtcmJ4Y2VzekJMTl9ONVJCQ2JKdmJQaTVQUjk0TnE5b1ZBWkJYd1cuRkdGcGhPQ1JxZ2c5UWE1OVUzYnZCTkdtVXVUR3pGUzIuX3dnZWJOZEVBQk5xeTZsd0JKNipncUR1YnlNVjQwTVVhamc0VWZRUGwxUmRIZUUyLmtRWC5LLjNDc3FEZFZUMHVlekZYdUNDMHlpc2hMZklRM0JyKkhrZng0X0Y2WFNHa0prVGVJVFcyUGVRQ0ZQd3loMldCMk9ISHNaUWdDaCpSMEJtT0haa1Rab3ZJZEJhS1B2eSpIRm4ublZYR1g3N192X2lfMSJ9|74d66cd645b103dd4e7a00e97aeb24f1eeba9e2789496494fb4a116745aecd91; z_c0=2|1:0|10:1706322727|4:z_c0|92:Mi4xMEF6ZkFnQUFBQUFCSUJNc0pVU3BGeVlBQUFCZ0FsVk5KN21oWmdEMFpWdUZGMExIQmRrWU4zOU53TmlCQUsxS2lB|28f46cac86dfd5e70454b248fae7468500f083a06e23428464f2931a4af0911e; q_c1=9b599593ce1b4fd08fbb51d5bfe95238|1706322727000|1706322727000; Hm_lpvt_98beee57fd2ef70ccdd5ca52b9740c49=1706322852; tst=r; KLBRSID=9d75f80756f65c61b0a50d80b4ca9b13|1706323187|1706322708'
            }
# 命名一个变量resp用于接收Requst类
resp = request.Request(url,headers=headers)
# 再用urlopen函数打开resp
resp_1 = request.urlopen(resp)
# 输出我们获取到的resp_1的html源代码
print(resp_1.read().decode('utf-8'))

        运行代码,这次发现返回的html源代码包含了知乎首页中的标题等中文信息了:

 

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值