• 请不要在回答技术问题时复制粘贴 AI 生成的内容
1023400273
V2EX  ›  程序员

关于如何阻止网络爬虫

  •  
  •   1023400273 · Mar 17, 2015 · 11102 views
    This topic created in 4249 days ago, the information mentioned may be changed or developed.
    最近我一个网站被别人扒了,未避免广告嫌疑url就不贴了,不知道有什么有效的方法可以防止爬虫呢?

    我想到的几个方法:
    1、限制IP访问频率(无效,后台看不到有异常ip访问,我猜想爬虫大约五六分钟来一次)
    2、用js动态加载数据内容(无效,爬虫支持js,且网站不利于seo)
    3、抛出js异常,部分爬虫会无法解析(仅仅只是部分)

    感觉爬虫和正常访问没啥区别,不知道有没有有效防止爬虫的方法

    做爬虫的法律风险都有啥?感觉好像不太容易举证,求解答
    52 replies  •  2015-03-18 09:32:54 +08:00
    kslr
    kslr
    Mar 17, 2015❤️1
    1
    没有完美的防守,只能提高爬虫的成本。

    往文本里面随机版权信息,但是白色字体试试?
    GG668v26Fd55CP5W
    GG668v26Fd55CP5W
    Mar 17, 2015 via iPhone❤️1
    2
    斗智斗勇呗,哈哈
    1023400273
    1023400273
    OP
    Mar 17, 2015
    3
    @kslr
    @falcon05 难道就这么跟他耗么
    mgc
    mgc
    Mar 17, 2015
    4
    筛选搜索引擎IP,加入白名单
    其他IP一律只能访问5个页面,超过2个页面需要登录
    lingo233
    lingo233
    Mar 17, 2015 via iPhone❤️1
    5
    你把12306的验证码系统搬来吧,访问一次输一次验证吗😜
    lujiajing1126
    lujiajing1126
    Mar 17, 2015❤️1
    6
    做一套token系统
    不过不能从根本上限制,因为爬虫可以尽可量模仿人的行为
    1023400273
    1023400273
    OP
    Mar 17, 2015
    7
    @mgc 不是搜索引擎,是一个竞争对手来扒的,他用的也不是固定ip,只允许访问5个页面的话可能会损失一部分流量,应该上面不会采纳这个意见的

    @lingo233 这样估计就没流量了


    @lujiajing1126 爬虫都可以模仿登录,token也应该无法根本解决
    mgc
    mgc
    Mar 17, 2015❤️1
    8
    @1023400273 我自己就是做爬虫的,基本上是防不住的,办法已经告诉你了
    1023400273
    1023400273
    OP
    Mar 17, 2015
    9
    @mgc 感谢
    lingo233
    lingo233
    Mar 17, 2015 via iPhone❤️2
    10
    @1023400273 上面都说模仿人类行为了,不反人类怎么防:D
    lujiajing1126
    lujiajing1126
    Mar 17, 2015❤️1
    11
    @1023400273 可以模仿登陆
    但是有Token可以做限制,比如说某个接口一分钟请求次数,类似于令牌桶
    增加爬虫的成本,如果爬虫爬的效率和人差不多。。那也没人会用了
    1023400273
    1023400273
    OP
    Mar 17, 2015
    12
    @lujiajing1126 如果我做一个爬虫更新自己网站的数据,我肯定模仿人类的点击呀,因为这个效率是可以接受,比如五分钟访问一次,如果太频繁访问肯定被墙的
    lujiajing1126
    lujiajing1126
    Mar 17, 2015❤️1
    13
    @1023400273
    那你还不如请个搬砖的帮你点呢
    爬虫就是为了快速高效收集海量数据吧
    1023400273
    1023400273
    OP
    Mar 17, 2015
    14
    @mgc 不过话又说回来,你不担心会有法律风险吗,比如文字里面有版权,图片里面有水印啥的,哈哈
    1023400273
    1023400273
    OP
    Mar 17, 2015
    15
    @lujiajing1126 是高效,但是为了避免被墙,我还是会模拟人类行为的,如果觉得短时间内的数据不够,你可以同时爬多个同类型的网站
    JamesR
    JamesR
    Mar 17, 2015❤️1
    16
    加个验证码就行了,验证码过不了的IP自动进黑名单几天。
    lujiajing1126
    lujiajing1126
    Mar 17, 2015❤️1
    17
    @1023400273
    那当然可以,如果你有足够的钱买很多机器和IP,你甚至可以把它整个网站弄崩,就ddos
    一般网络底层防ddos会考虑ip的数目来做网络包过滤
    但是首先你得考虑你爬数据的成本和你自己制造这些数据哪个低一些。。
    有钱,这些都不是事
    xiaogui
    xiaogui
    Mar 17, 2015❤️1
    18
    上黄色反动内容,只对他的 ip 有效,然后被抓取以后,举报他。
    哈哈,开玩笑啦。
    fate
    fate
    Mar 17, 2015❤️1
    19
    最重要的是要提高爬虫成本
    cszhiyue
    cszhiyue
    Mar 17, 2015❤️1
    20
    提高爬虫成本
    oott123
    oott123
    Mar 17, 2015 via Android❤️2
    21
    做陷阱…藏普通用户看不到的链接,一点就封 ip 或者开始返回垃圾内容…
    文字随机翻转然后用 css 转回来…
    JoeShu
    JoeShu
    Mar 17, 2015❤️1
    22
    爬虫技术上的难点主要有:
    1. ip限制,不过你的网站没有那么多的页面或者页面更新频率不多的话,这个可以用代理池来解决。
    2. 登录验证码识别,目前的验证码识别率不高,这个目前只能通过图片识别、验证码库以及人肉来解决,不过这个会影响正常用户的访问。

    其实搜索引擎本身就是通过爬虫来收录你的网站,楼主不希望影响seo,又不想影响流量,如果网站内容是原创的,不如试着收集证据直接给对方发律师函更有用。
    sohoer
    sohoer
    Mar 17, 2015
    23
    如果你的网站有海量数据,并且别人需要实时性较高的抓取你的数据,你可以考虑些策略对爬虫做限制
    em70
    em70
    Mar 17, 2015❤️1
    24
    写一段脚本每个小时分析一下日志,如果某个IP访问页面的数量超过一定值,就加入防火墙,每天凌晨解封全部IP
    randyzhao
    randyzhao
    Mar 17, 2015❤️1
    25
    模拟browser行为的爬虫 怎么防
    验证码都能破
    anguskwan
    anguskwan
    Mar 17, 2015❤️1
    26
    我跟你说,只要能看得见,我就能怕得到。
    1023400273
    1023400273
    OP
    Mar 17, 2015
    27
    @JoeShu 我也认为走法律途径比较有效
    1023400273
    1023400273
    OP
    Mar 17, 2015
    28
    zhicheng
    zhicheng
    Mar 17, 2015
    29
    加一个隐藏的 flash 。
    FrankFang128
    FrankFang128
    Mar 17, 2015
    30
    图灵机测试
    imlonghao
    imlonghao
    Mar 17, 2015 via Android❤️2
    31
    陷阱url,点中自动iptables见
    CodeDrift
    CodeDrift
    Mar 17, 2015
    32
    @imlonghao 那搜索引擎的爬虫不就完蛋了。。。
    est
    est
    Mar 17, 2015
    33
    @zhicheng 再写点AS检测鼠标轨迹。。。
    ryd994
    ryd994
    Mar 17, 2015
    34
    主要是搜索引擎本质上也就是个爬虫啊……
    你要封爬虫,还想不影响SEO……
    qdwang
    qdwang
    Mar 17, 2015❤️1
    35
    针对搜索引擎返回文本文字,其他用户一律返回转曲的文字。
    invite
    invite
    Mar 17, 2015❤️1
    36
    1、限制IP访问频率(无效,后台看不到有异常ip访问,我猜想爬虫大约五六分钟来一次)
    2、用js动态加载数据内容(无效,爬虫支持js,且网站不利于seo)
    3、抛出js异常,部分爬虫会无法解析(仅仅只是部分)

    一个爬虫做到了以上几个,跟人在浏览不是一个样了?

    或者你跟踪鼠标吧,一般人鼠标都会动来动去的。
    YonionY
    YonionY
    Mar 17, 2015❤️6
    37
    爬虫是自动化的,有个思路。

    在页面插入隐藏url,还有url规则随机插入钓鱼页。

    准备一些轮子资料给他,访问到钓鱼页就送上轮子资料让他爬,如果这个爬虫是自动输出到网站的,然后马上举报他传播不良信息,他就有麻烦了。
    northisland
    northisland
    Mar 17, 2015
    38
    37楼目前领先!!
    我们公司有批人就是做爬虫的,手机端都能通过协议给你爬数据=_=
    ioschen
    ioschen
    Mar 17, 2015
    39
    @YonionY 真坏
    c3538378
    c3538378
    Mar 17, 2015❤️1
    40
    各位号称爬虫技术牛逼的大侠们,你们不如来采集一下alibaba试试?小弟才疏学浅,反正我是搞不定啦。

    sample: http://szhlxkjyxgs.1688.com/page/creditdetail.htm
    imlonghao
    imlonghao
    Mar 17, 2015 via Android
    41
    @Anybfans a链接nofollow
    imlonghao
    imlonghao
    Mar 17, 2015 via Android❤️1
    42
    @northisland 手机端走http协议的可以抓的
    京东手机端有个接口就可以很好的爬......
    1023400273
    1023400273
    OP
    Mar 17, 2015❤️1
    43
    @c3538378 这个很难爬么?乍一看感觉不难啊,看源代码都能看到数据
    c3538378
    c3538378
    Mar 17, 2015
    44


    工商注册信息那部分用的图片,当然如果用手机版可能可以看到源码。
    crab
    crab
    Mar 17, 2015
    45
    @c3538378
    POST地址: http://mapi.1688.com/openapi/json2/1/ali.mobile/company.getCompany/71045
    POST参数:_data_={"request":{},"memberId":"szhlxkjyxgs"}
    返回的筛选下。
    Daniel65536
    Daniel65536
    Mar 17, 2015 via iPad
    46
    @Anybfans 爬虫作者一般不会考虑网站的robots协议,搜索引擎会。
    zpvip
    zpvip
    Mar 17, 2015❤️1
    47
    挑一两百个高频文字生成图片代替,比如 “我, 的,就,是,要。。。”

    图片名用 md5 或 随机数,这种关系存在缓存,文章显示前替换一下,

    每一小时把所有图片全部换名字,图片防盗链。
    ynyounuo
    ynyounuo
    Mar 17, 2015
    48
    SmiteChow
    SmiteChow
    Mar 17, 2015
    49
    道高一尺,魔高一丈,真要爬你,怎么都拦不住,反图灵测试只要是技术生成的,破解都是必然的。

    现实一点,就是权限验证,任何资源都必须验证权限,频次验证,单位时间内访问次数限制
    lshero
    lshero
    Mar 17, 2015
    50
    如果真针对PC浏览的话不搞手机自适应,我觉得只要他不上图片OCR的话,你可以把一些常用字做成图片,输出的时候把一些常用字图片混入文本之中,这样他采集的内容就是断断续续的这样可读性就会差不少
    ericls
    ericls
    Mar 18, 2015
    51
    用无边框的table动态生成排版
    m939594960
    m939594960
    Mar 18, 2015
    52
    @lshero 电脑字体不一样 会很蛋疼的。。 高低参差不齐!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5035 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 298ms · UTC 05:58 · PVG 13:58 · LAX 21:58 · JFK 00:58
    ♥ Do have faith in what you're doing.