首页 > 编程语言 >python爬虫从0到1 -urllib_Cookie登录

python爬虫从0到1 -urllib_Cookie登录

时间:2022-10-17 22:04:02浏览次数:36  
标签:登录 python request urllib headers cookie Cookie


前言

当我们进行某项数据采集的时候,有时会让我们进行登录,那我们要怎样去解决这个问题呢?为了不让我们爬取这些数据,又采取了怎么样的反爬措施呢?下面就让我们带着这些问题去一探究竟。

Cookie反爬策略

Cookie一般是登录后产生(post),用来保持登录状态的,一般登录一次,下一次访问该网站下的其他网址时就不需要登录了,这就是由于cookie的作用,cookie就是给无状态的HTTP/HTTPS协议添加了一种保持之前状态的功能,这样下次处理信息的时候就不用重新获取信息了。
cookie还可以来判断是否是爬虫程序,因为一般的爬虫程序中并不会携带cookie,有些比较严格的网站,不登录也需要携带cookie访问,也就是说cookie的应用场景并不仅仅只有登录后才需要。
简而言之:Cookie中携带者你的登录信息,如果有登录过后的Cookie,我们就可以带着Cookie进入到任何页面。
适用场景: 数据采集的时候,需要绕过登陆,然后进入到这个页面。

cookie的获取:

刚进入学习爬虫的阶段我们通常在网页中查看Cookie。并将它复制到我们的请求头上。后续在requests模块时我们在详细的去了解Cookie。

python爬虫从0到1 -urllib_Cookie登录_爬虫


Cookie后面还有一个参数是referer 它的作用是判断当前路径是否是由上一个路径进来的,一般情况下它通常作为图片的防盗链。在我们抓取图片时会用到,也是放在请求头(headers)里。

实战演练

import urllib.request

url = 'https://user.qzone.qq.com/2544722208/infocenter'

headers = {

'cookie':'2544722208_todaycount=1; 2544722208_totalcount=15774; x-stgw-ssl-info=d77e0f85bd2a3c80332bbaf888749af6|0.106|-|30|.|I|TLSv1.2|ECDHE-RSA-AES128-GCM-SHA256|43000|h2|0; RK=1WeFLywUfw; ptcz=043b1188d90ebd229b178aba059ee3846ff7cb21cc1d1778000c19164a1a8949; Loading=Yes; qz_screen=1536x864; pgv_pvid=1824070179; QZ_FE_WEBP_SUPPORT=1; cpu_performance_v8=1; __Q_w_s_hat_seed=1; uin=o2544722208; skey=@Cps9Z8GqJ; p_uin=o2544722208; pt4_token=mGzJtuFZyp22h079Lsd1e2F5ugHERfLYxzxBm1uHgDA_; p_skey=FjeQHpwb9SIkXZpW77cTtzXqdwo6EMpV3GxWAY4t5pE_; pgv_info=ssid=s8342288258',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3880.400 QQBrowser/10.8.4554.400'
}

request = urllib.request.Request(url = url , headers = headers )

response = urllib.request.urlopen(request)

content = response.read().decode('utf-8')

with open('qqzone.html','w' ,encoding='utf-8')as fp:
fp.write(content)

这是UA反爬之外的Cookie反爬策略。我们就用这种方式去反反爬策略。如有不足,欢迎在评论区补充哦!


标签:登录,python,request,urllib,headers,cookie,Cookie
From: https://blog.51cto.com/u_15831459/5764498

相关文章

  • Python与JavaScript交互
    介绍“胶水”语言Python很擅长于其他语言交互,本文介绍如何与JavaScript来交互。 ......
  • Python 遍历指定文件夹下所有文件批量操作的方法
    Python中进行程序开发时,有些文件操作的需求可能需要我们对文件夹下的所有文件进行批量操作。本文主要介绍一下Python中对指定文件夹下所有文件进行批量操作的方法。原文地......
  • python当中删除文件的几种方法
    python当中运用os,shutil来实现对文件和文件夹的删除操作。方法一:importos,shutildefdel_file0(path):shutil.rmtree(path)del_file0(r"C:\Users\1\Desktop\m......
  • Python __new__()方法详解
    __new__()是一种负责创建类实例的静态方法,它无需使用staticmethod装饰器修饰,且该方法会优先__init__()初始化方法被调用。一般情况下,覆写__new__()的实现将会使用合......
  • Python导入模块,Python import用法(超级详细)
    使用 Python 进行编程时,有些功能没必须自己实现,可以借助Python现有的标准库或者其他人提供的第三方库。比如说,在前面章节中,我们使用了一些数学函数,例如余弦函数cos()......
  • 什么是文件路径,Python中如何书写文件路径?
    当程序运行时,变量是保存数据的好方法,但变量、序列以及对象中存储的数据是暂时的,程序结束后就会丢失,如果希望程序结束后数据仍然保持,就需要将数据保存到文件中。Python 提......
  • Python(for和while)循环嵌套及用法
    Python 不仅支持if语句相互嵌套,while和for循环结构也支持嵌套。所谓嵌套(Nest),就是一条语句里面还有另一条语句,例如for里面还有for,while里面还有while,甚至while......
  • Python zip函数及用法
    zip()函数是 Python 内置函数之一,它可以将多个序列(列表、元组、字典、集合、字符串以及range()区间构成的列表)“压缩”成一个zip对象。所谓“压缩”,其实就是将这些......
  • Python continue的用法
    和break语句相比,continue语句的作用则没有那么强大,它只会终止执行本次循环中剩下的代码,直接从下一次循环继续执行。仍然以在操作跑步为例,原计划跑10圈,但当跑到2圈半......
  • Python reversed函数及用法
    eserved()是Pyton内置函数之一,其功能是对于给定的序列(包括列表、元组、字符串以及range(n)区间),该函数可以返回一个逆序序列的迭代器(用于遍历该逆序序列)。reserved()......