爬虫(04)cookie+session+正则+字典快速生成2020-12-18

本文介绍了Python爬虫中Cookie和Session的使用,包括模拟登录、处理SSL证书问题,以及正则表达式在爬虫中的应用。通过实例展示了如何利用Cookie进行反爬和模拟登录,如何处理不信任的SSL证书,以及正则表达式模块re的基本使用。
摘要由CSDN通过智能技术生成

第四章 cookie与session正则字典快速生成

1. 小知识点:字典快速生成

当我们在定制headers的时候,会有大量的数据需要转化为键值对,给每对数据加上引号,手动操作很慢,这里我们可以用一个正则的方法快速操作。

(.*?):(.*)
'$1':'$2',

这是正则表达式,选中所有要加引号的内容,按住Ctrl+r调出命令输入口,依次输入上面的正则表达式,再点Replace all

2. cookie初识

cookie: 通过在客户端记录的信息确定用户身份。
HTTP是一种无连结协议,客户端和服务器的交流仅限于请求与响应的过程,结束后就断开,下一次请求时,服务器会认为是一个新的客户端。为了维护他们之间的连结,让服务器知道,这是前一个用户发起的请求,必须在一个地方保留客户端信息。

2.1 反爬

cookie的作用就是把服务器里面记录的客户端的信息提供给服务器,让它“认得”我们。下面通过一个实例来展示它的作用。
实例:我们常用的某网站,我们的目标是爬取我们要的一个票的信息。
在这里插入图片描述

我想获取这个网站的源代码,并从中找到k2046。常规代码是这样的:

# 1*2*3*0*6案例
import requests
url = 'https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc&fs=%E8%A5%BF%E5%AE%89,XAY&ts=%E9%83%91%E5%B7%9E,ZZF&date=2020-12-18&flag=N,N,Y'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36'}
res = requests.get(url,headers=headers)
res = res.content.decode('utf-8')
with open(r'D:\spiderdocuments\demo_12306_01.txt','w',encoding='utf-8') as f:
    f.write(res)
print('写入成功!')

为了方便查找,我将获取到的源码写入了一个名为“demo_12306_01.txt”的文本文档里面。程序执行后,我在相应的路径里找到了该文件:
在这里插入图片描述
打开输入查找内容:
在这里插入图片描述

结果却显示找不到我们要的内容,这是怎么回事呢?不再啰嗦,这是因为该网站采用了异步加载的功能,ajax技术,这个大家自己百度。就是在网页不整体更新的情况下,加载更新网页的部分内容。下面我进行如下操作:

  • 再次打开该网页
  • 检查》源代码》network》清空》点网页上的“查询”
    在这里插入图片描述
    在这里插入图片描述
    在这个名为query的加载项里就有我们想要的目标。如果我们要获得这个项目里的数据,就需要相应的cookie,看后面的cookie。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值