反爬虫项目Day1

本文介绍了反爬虫项目的背景与实现概述,强调了爬虫对系统资源的消耗。项目通过js埋点和OpenResty收集数据,利用kafka传输,使用sparkStreaming或flink进行数据清洗和结构化,将处理结果存储回kafka。通过实时和离线操作,利用Spark和Flink处理数据,生成反爬规则并存储于Redis,以防止非法访问。
摘要由CSDN通过智能技术生成

反爬虫项目

项目实现的背景

很多订票网站的官网在互联网提供查询、预订等服务,如:各种航空公司的官网、去哪网、携程等,有大量正常用
户访问的同时,也存在大量爬虫。爬虫消耗了系统资源,但是却没有转化成销量,导致系统资源虚耗,严重时会造
成系统波动,影响正常用户访问购票。通过系统日志分析等,发现官网访问中存在大量爬虫,且通过大量的 IP 进
行伪装。

项目的概述
  1. 数据源(网页上的点击日志信息)的获取,方式有很多主要介绍两种:js埋点生成数据和OpenResty生成数据。

js埋点生成数据简单的说就i是在客户浏览的页面上记录客户的操作行为,并将该数据写到log sever服务器中。
OpenResty是集成了Nginx+lua+tomcat的数据采集工具,主要是lua脚本进行数据的采集

  1. 使用lua脚本将采集到的数据存到kafka(肖峰、解耦、异步等特点)中来。
  2. 使用sparkStreaming或者flink对数据进行清洗使数据结构化,主要的操作有:转换、分类、过滤、脱敏等操作。
  3. 将处理好的数据再次存入到 kafka中,处理过后,不同的类别放在kafka中不同的topic中,可以分别进行实时和离线 操作。
  4. 进行离线操作

使用sparkCore或者SparkSql对数据进行处理,生成规则信息,将结果输出到mysql,供Web配置

  1. 进行实时操作

使用SparkStreaming或者flink获取kafka中的数据,根据配置进行反爬业务的处理,将反爬黑名单存入Redis,当Nginx接收到客户的请求时,可以获取客户的IP,将该IP与Redis中的进行对比,若相同,则返回402页面,否则正常返回页面。

以上就是整个业务,项目的整体框架流程

错误记录

在导入Web项目时,必须使用import,并且需要修改maven库为自己本地的maven库,修改conf文件中的配置。同时在mysql中建表建库。

模拟实时处理数据

kafka-console-producer.sh生产数据 --> idea模拟消费处理数据 --> 将处理好的数据存入到kafka

//使用flink模拟
//flink中获取Source  Sink的工具类
package com.cxl.util

import java.util.Properties

import org.apache.flink.api.common.serialization.SimpleStringSchema
import org.apache.flink.streaming<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值