网络爬虫基础-模拟登陆

验证码

验证码识别

验证码和爬虫之间的爱恨情仇?

反爬机制:验证码,识别验证码图片中的数据,用于模拟登陆操作

识别验证码的操作:

  • 人工肉眼识别。

  • 图像识别

  • 第三方自动识别

    • 超级鹰处理验证码

      http://www.chaojiying.com/

第三方法自动识别

超级鹰的使用流程:

  • 开发者用户的登陆
    • 创建一个软件:用户中心——>创建软件——>获取软件id和密钥
    • 下载示例代码:开发文档——> python ——> 下载

使用打码平台识别验证码的编码流程:

  • 将验证码图片进行本地下载
  • 调用平台提供的示例代码进行图片数据识别

模拟登陆

  • 爬取基于某些用户的用户信息

  • 有些内容需要登录才能获取

  • 模拟登陆流程

    • 点击登录按钮之后会发起一个post请求
    • post请求中会携带登录之前录入的相关的登录信息(用户名 ,密码,验证码……)
    • 验证码:每次请求都会发生变化

爬取当前用户相关的用户信息(个人主页中显示的用户信息)

http/https协议特征:无状态

没有请求到对应页面数据的原因:

  • 发起的第二次基于个人主页页面请求的时候,服务器端并不知道该请求是基于登录状态下的请求。

cookies

cookies:由服务器端创建,最终存储在客户端,用来让服务器端记录客户端的相关状态。

  • 手动处理:通过抓包工具获取cookie值,将该值封装到headers中。(不建议)

  • 自动处理:

    • cookie值的来源:模拟登陆post请求后,由服务器端创建。

    • session会话对象:

      • 作用:
        1. 可以进行请求的发送
        2. 如果请求过程中产生了cookie,则该cookie会被自动存储/携带在该session对象中
    • 创建一个session对象:session = requests.Session()

    • 使用session对象进行模拟登陆post请求的发送(cookie就会被存储在session中)

      • session.post() 同requests
    • session对象对个人主页对应的get请求进行发送(携带了cookie)

    • 需要注意的地方(在爬取古诗文网遇到的问题)

      1. 动态变化的请求参数:data中的参数可能是动态变化的,通常会隐藏在当前对应的前端页面的代码中。
      2. 可能会产生session的请求都用session发起(包括验证码的获取)

代理

代理:破解封ip这种反爬机制(很少用)

什么是代理:

  • 代理服务器

代理的作用:

  1. 突破自身ip访问的限制
  2. 可以隐藏自身真实的ip免受攻击

代理相关的网站:

  1. 西刺免费代理 IP: http://www.xicida
  2. 快代理: http://www.kuaidaili.com/
  3. www.goubanjia.com

代理ip的类型:

  • http:应用到http协议对应的url中
  • https:应用到https协议对应的url中

代理ip的匿名度:

  • 透明:服务器知道该次请求使用了代理,也知道请求对应的真实ip
  • 匿名:服务器知道了代理,不知道真实ip
  • 高匿:服务器不知道使用了代理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值