python爬虫补充

Cookie与Session实战:从反爬到验证码破解

知识补充

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

cookie作用1:反爬案例——购票

运用了AJAX技术,不用重新加载页面也可以改变数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import requests

url = 'https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2021-04-27&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=SHH&purpose_codes=ADULT'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'
}
res =requests.get(url,headers=headers)
print(res.content.decode('utf-8'))

发现结果不是想要的

在这里插入图片描述

解决:加入cookie

在这里插入图片描述

成功了

在这里插入图片描述
在这里插入图片描述

cookie作用2:模拟登录

# 模拟登录
# https://www.zhihu.com/signin?next=%2F 知乎登录界面
# https://www.zhihu.com/hot 知乎热榜界面
url = 'https://www.zhihu.com/hot'
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'
}
res =requests.get(url,headers=headers)
print(res.text)

在这里插入图片描述

证明没有进入hot界面,加入cookie,成功了

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

session——突破图片验证码

在这里插入图片描述
在这里插入图片描述

验证码失败显示:

在这里插入图片描述

需求:进入页面

在这里插入图片描述

请求失败:

在这里插入图片描述

先要获取图片的url——运用base64转换——要把第一行删掉

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用上述方法得到图片太麻烦,用以下方式简单:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

删掉image64的64结果:

在这里插入图片描述

用session——保持会话

import requests
req =requests.session()
def login():
    # 获取图片
    pic_response =req.get('https://kyfw.12306.cn/passport/captcha/captcha-image64?login_site=E&module=login&rand=sjrand')
    codeImage=pic_response.content
    fn =open('code5.png','wb')
    fn.write(codeImage)
    fn.close()

    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'}
    codeStr =input("请输入验证码坐标")

    data = {
        "answer": codeStr,
        "rand": " sjrand",
          "login_site": " E",
    }
    res=req.post('https://kyfw.12306.cn/passport/captcha/captcha-check', data=data,headers=headers)
    print(res.text)
login()

图片坐标用截图来写

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解决方法:verify =false

在这里插入图片描述

正则表达式介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值