zoukankan      html  css  js  c++  java
  • 爬虫与反爬虫

    爬虫与反爬
    爬虫:自动获取网站数据的程序,关键是批量的获取。

    反爬虫:使用技术手段防止爬虫程序的方法

    误伤:反爬技术将普通用户识别为爬虫,从而限制其访问,如果误伤过高,反爬效果再好也不能使用(例如封ip,只会限制ip在某段时间内不能访问)

    成本:反爬虫需要的人力和机器成本

    拦截:成功拦截爬虫,一般拦截率越高,误伤率越高

    反爬虫1
    爬虫:对网站的数据感兴趣,着手分析网络请求,用Scrapy写爬虫爬取网站数据
    网站:后台监控发现请求中的User-Agent都是python,直接限制访问(不能封ip)

    反爬虫2
    爬虫:通过在请求头中传递User-Agent参数模拟浏览器请求,可以用UA池
    网站:后台监控发现同一ip在某时间段内请求过于频繁,直接限制访问(不能封ip)

    反爬虫3
    爬虫:在原来的基础上,再通过ip代理向网站发起请求,可以用代理池
    网站:后台监控发现ip发生变化,但某一时间段内的请求量过大,对服务器造成过大压力,网站中某些数据直接要求登录才能访问

    反爬虫4
    爬虫:注册账号,每次请求携带cookie或者token值
    网站:健全账号体系,用户只能访问好友信息,非好友信息不能访问,或只能访问部分信息

    反爬虫5
    爬虫:注册多个账号,多个账号联合爬取,设置程序,每个账号每天固定添加好友,但是养号是个相对耗时的过程
    网站:后台监控发现请求过于频繁,为避免服务器压力过大,进一步加剧ip访问频率限制

    反爬虫6
    爬虫:模拟人去请求,限制请求速度,让代码睡几秒
    网站:后台监控到ip访问时间段过长,例如一天24小时都在有规律地请求,弹出验证码

    反爬虫7
    爬虫:通过各种手段识别验证码(建议使用打码平台,充钱,自己去研究识别验证码太费时,时效性也太差)
    网站:增加动态网站,数据通过js动态加载,增加网络分析复杂度,或者发现大量请求时只请求html,而不请求image和css以及js,亦或者直接返回假数据给爬虫

    反爬虫8
    爬虫:通过正常请求去爬取数据,但有些数据看不到,数据是动态加载的,考虑发了ajax请求
    网站:不在前端正常显示

    反爬虫9
    爬虫:通过一些反爬手段去爬取数据,但得到的不是正常的数据,网站应该是做了某种手段的加密
    网站:把内容进行加密

    反爬虫10
    爬虫:通过selenium和phantomjs(无界面浏览器)完全模拟浏览器操作,例如滑动验证等
    网站:......

  • 相关阅读:
    Quartz.NET 2.0 学习笔记(1) :Quartz.NET简介
    Quartz.NET 2.0 学习笔记(5) :实例创建Windows服务实现任务调度
    Quartz.NET 2.0 学习笔记(2) :和1.0的几点不同
    C#实现网页正文提取算法ok
    网页正文提取的思路
    sql getdate() 时间格式设置
    分页,静态程序asp实现,php同理
    网页正文抽取能用的抽取代码java
    泛采集技术
    查询一个数据表中的数据并插入到另一个数据表
  • 原文地址:https://www.cnblogs.com/saoqiang/p/12449638.html
Copyright © 2011-2022 走看看