V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wyan453351466
V2EX  ›  程序员

小网站每个月光是谷歌爬虫的 CDN 流量费用就要 30 元+?

  •  2
     
  •   wyan453351466 · 2017-11-22 17:23:13 +08:00 · 10917 次点击
    这是一个创建于 2556 天前的主题,其中的信息可能已经有所发展或是发生改变。

    根据我后台的数据统计,谷歌的爬虫保守估计一天请求了我的网站 3 万次。

    这还不算其他的一些搜索引擎的请求( yandex 之类的)。

    这个数据正常吗?

    如果一个恶意爬虫,user-agent 冒充是 Google。这个有办法识别吗?

    5D821D07-CC01-4522-A2C7-F02FB50C48B5.png

    下面晒一下昨天又拍云的费用账单,光是欧美的动态资源加速费用就 1.64 元(我是大陆中文网站哪会有欧美的用户?)。加上 https 加速和 cdn 流量费用是 2 元多。按这个标准,每个月我要付费 60 多块钱给欧美的爬虫!

    我的真实 PV 才 3000 啊(百度统计的数据)。每日动态资源请求次数居然可以有 8 万,你敢信?

    QQ20171122-171923.png

    所以现在是要限制一下谷歌爬虫的请求频率?这个谷歌官方应该有设置。

    我想求教大家的是:

    1. 如何准确的区分真实搜索引擎,和恶意爬虫?( user-agent 判断貌似不靠谱)

    2. 如何更好的反爬虫?判断一个 IP1 分钟、1 小时、1 天内的请求次数?

    3. 更关键的是:我想求教大牛:有没有真实案例自己网站日均 PV10 万+的?开 HTTPS 的情况下,这样的网站一个月的 CDN、流量费用要多少钱呢?( HTTPS 的 CDN 请求也要钱的!阿里云和又拍云的价格是:1 万次 0.05 元)

    45 条回复    2017-11-24 17:07:28 +08:00
    yulgang
        1
    yulgang  
       2017-11-22 17:40:13 +08:00   ❤️ 1
    Zzzzzzzzz
        2
    Zzzzzzzzz  
       2017-11-22 17:54:34 +08:00
    robots 里设 Crawl-delay, 但几大厂流氓起来也有可能不管这个

    判断是否爬虫也没什么好办法, 理论上可以反查 IP 的 PTR, 几大搜索引擎的爬虫一般都有注明, 但是搜索引擎为了防止作弊, 都有一些标称 IP 段外的 IP 做随机访问, 大规模针对性输出的反而可能有反效果

    所以, 硬扛吧
    kaer
        3
    kaer  
       2017-11-22 18:09:44 +08:00
    日 PV 22 万左右 服务器费用加 CDN 费用 每月接近 7K-10k
    kungfuchicken
        4
    kungfuchicken  
       2017-11-22 18:25:33 +08:00
    其实,你可以换一家动态加速不要钱的就解决啦
    paranoiagu
        5
    paranoiagu  
       2017-11-22 19:14:39 +08:00 via Android   ❤️ 1
    没有国外用户,你可以关了国外加速。
    0ZXYDDu796nVCFxq
        6
    0ZXYDDu796nVCFxq  
       2017-11-22 19:19:41 +08:00 via iPhone
    IP 贴出来啊,如果我是恶意爬虫,我也肯定用 Google 或者百度的 UA
    Le4fun
        7
    Le4fun  
       2017-11-22 19:52:26 +08:00
    国外用户是不是部分人开了梯子没关访问你的网站
    yytsjq
        8
    yytsjq  
       2017-11-22 19:56:48 +08:00   ❤️ 5
    验证 Googlebot
    https://support.google.com/webmasters/answer/80553?hl=zh-Hans

    要验证 Googlebot 是否为调用方,请执行以下操作:

    1. 使用 host 命令对您日志中访问服务器的 IP 地址运行反向 DNS 查找。
    2. 验证该域名是否位于 googlebot.comgoogle.com 中。
    3. 对在第 1 步中使用 host 命令检索到的域名运行正向 DNS 查找。验证该域名与您日志中访问服务器的原始 IP 地址是否一致。

    示例 1:

    > host 66.249.66.1
    1.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-1.googlebot.com.

    > host crawl-66-249-66-1.googlebot.com
    crawl-66-249-66-1.googlebot.com has address 66.249.66.1


    示例 2:

    > host 66.249.90.77
    77.90.249.66.in-addr.arpa domain name pointer rate-limited-proxy-66-249-90-77.google.com.

    > host rate-limited-proxy-66-249-90-77.google.com
    rate-limited-proxy-66-249-90-77.google.com has address 66.249.90.77
    opengps
        9
    opengps  
       2017-11-22 20:00:25 +08:00
    你可以去谷歌设置下爬取频率
    schema
        10
    schema  
       2017-11-22 20:19:35 +08:00
    你说没有海外业务,那关闭国外加速,关闭国外 HTTPS 就好很多了
    isCyan
        11
    isCyan  
       2017-11-22 20:22:53 +08:00
    动态资源过 CDN 真的很费钱,动静分离吧
    Loyalsoldier
        12
    Loyalsoldier  
       2017-11-22 20:28:07 +08:00
    又拍云的 动态资源加速 是所有项目中最贵的。问过客服,说:只要页面设置缓存超过 1 分钟,就不会被又拍云认为是动态资源。楼主可以试试把不重要的内容缓存 2 分钟……

    我们公司就是这样一个月省下 3K 的
    wyan453351466
        13
    wyan453351466  
    OP
       2017-11-22 21:04:17 +08:00 via iPhone
    @Loyalsoldier 如果缓存 1 分钟的话,那类似用户登录的操作,还可以实时更新登录状态吗😂 我回头咨询一下他们客服。现在首页不可以缓存,其他页面都可以,就看登录这个能不能行了
    wyan453351466
        14
    wyan453351466  
    OP
       2017-11-22 21:11:02 +08:00 via iPhone
    @paranoiagu 嗯,谢谢!我明天看看又拍云怎么设置。不过即使关闭加速,请求费用和 https 还是省不下来的。除非国外可以走不同的 dns。

    这里又涉及到一个问题:如果国外直接访问源站的话,暴露服务器的 ip 会不会有安全问题
    Loyalsoldier
        15
    Loyalsoldier  
       2017-11-22 21:13:37 +08:00
    @wyan453351466 #13

    登录页面当然不可以缓存……
    Loyalsoldier
        16
    Loyalsoldier  
       2017-11-22 21:16:29 +08:00
    @wyan453351466 #13

    但是搜索引擎应该也不会爬登录页吧,或者你设置一下 robots.txt 文件的爬虫规则
    wyan453351466
        17
    wyan453351466  
    OP
       2017-11-22 21:19:08 +08:00 via iPhone
    @Loyalsoldier 不是,我的意思是,每个页面的头部都会显示登录状态的。如果登录了,其他页面被缓存,岂不是看不到登录状态了(还是显示未登录)
    Loyalsoldier
        18
    Loyalsoldier  
       2017-11-22 21:23:05 +08:00
    @wyan453351466 #17

    是的……缓存只能用在不涉及用户状态变更的页面
    wyan453351466
        19
    wyan453351466  
    OP
       2017-11-22 21:27:47 +08:00 via iPhone
    @Loyalsoldier 所以就没办法了😂
    mcfog
        20
    mcfog  
       2017-11-22 22:15:23 +08:00 via Android
    @wyan453351466 动静分离的第一步就是把带状态的内容和静态内容分离啊,静态首页显示未登录的或者空白的头,js 请求登录态后再画头呗
    wyan453351466
        21
    wyan453351466  
    OP
       2017-11-22 22:34:46 +08:00 via iPhone
    @mcfog 大神啊!之前看到一些大网站这么做的。没往这方面想。谢谢啦
    wyan453351466
        22
    wyan453351466  
    OP
       2017-11-22 22:36:47 +08:00 via iPhone
    @mcfog 那这么说首页其实也可以静态的。首页的内容每次刷新会变化,这个也可以用 js 异步获取。不过我多了解下 seo 方面有什么影响。即使不优化首页,其他页面全部静态化,也要减少很多的动态费用了
    huangunic0rn
        23
    huangunic0rn  
       2017-11-22 22:38:20 +08:00 via Android
    host 反解域名就行。带 Google 当然是谷歌
    wdlth
        24
    wdlth  
       2017-11-22 22:43:04 +08:00
    国外的一般用云减速 CF 顶着,用网宿又拍什么的太壕了……
    woshinide300yuan
        25
    woshinide300yuan  
       2017-11-22 23:13:12 +08:00
    哈哈,访问区域限制,只支持大陆?
    然后关闭海外加速?
    然后……根据 UA 限制一下抓取频率?
    然后…… 解析到 127.0.0.1 /DOGE
    哈哈~
    ericgui
        26
    ericgui  
       2017-11-23 00:30:09 +08:00
    @kaer 请问您的网站是不是已经盈利了呢?每月开支这么大,否则撑不下去的吧?
    Technetiumer
        27
    Technetiumer  
       2017-11-23 00:38:50 +08:00 via Android
    DNS 分區解析

    海外 Incapsule 免費
    國內 又拍
    mytsing520
        28
    mytsing520  
       2017-11-23 01:08:16 +08:00
    @woshinide300yuan 他的访问区域功能,默认情况下开启境外,即开启境外节点,这部分结算费用比较高;关闭境外后,境外访问该网站则只使用中国大陆节点,而不是境外禁止访问
    heat
        29
    heat  
       2017-11-23 07:25:37 +08:00 via iPhone
    @kaer 日 PV30 万,每个月费用是你的二分之一……
    NowTime
        30
    NowTime  
       2017-11-23 08:14:25 +08:00 via Android
    Google 等其它爬虫不会加载网页中的 js,所以你添加的 百度统计 代码,统计不到这些爬虫的访问记录。
    shakoon
        31
    shakoon  
       2017-11-23 08:24:11 +08:00
    pv 3k 其实不用 cdn 也没多大问题,或者换个免费的好了
    boyxupers
        32
    boyxupers  
       2017-11-23 08:54:53 +08:00 via iPhone
    @shakoon 同感,小站上什么 cdn ?
    ss0xt
        33
    ss0xt  
       2017-11-23 09:21:55 +08:00
    怕不是上次你爬煎蛋,过分,有人来搞你了?(滑稽
    ninestep
        34
    ninestep  
       2017-11-23 09:47:17 +08:00
    静态资源防盗链,爬虫爬你的静态文件干嘛,肯定是有人用你的静态资源了
    a1044634486
        35
    a1044634486  
       2017-11-23 09:50:30 +08:00
    感觉 33 楼说的有道理
    wyan453351466
        36
    wyan453351466  
    OP
       2017-11-23 10:03:27 +08:00
    @ss0xt
    @a1044634486

    这件事我也不想再做太多的解释了。在遇到事情的严重性后,我已经在自己的网站下架了这个版块,并停止了对煎蛋的爬取。(仅凭我一个人一台渣渣服务器就可以对一个网站进行 ddos 攻击,那您真的是太高看我了)
    kaer
        37
    kaer  
       2017-11-23 14:22:56 +08:00
    @ericgui 不盈利早亏死了
    IzY
        38
    IzY  
       2017-11-23 15:11:24 +08:00 via iPhone
    @kaer 还接广告不,1w uv 提成 100
    mymuw
        39
    mymuw  
       2017-11-23 17:37:27 +08:00
    试试这个 cdn 很便宜很稳定 www.kekaoyun.com
    lengyihan
        40
    lengyihan  
       2017-11-23 19:09:55 +08:00 via Android
    用免费的吧,
    paranoiagu
        41
    paranoiagu  
       2017-11-23 19:27:50 +08:00 via Android
    @wyan453351466 不会用原站的,就是国外用户访问了国内的 CDN,速度慢一点。
    paranoiagu
        42
    paranoiagu  
       2017-11-23 19:29:49 +08:00 via Android
    @mymuw 回源端口支持非标准端口吗?现在电信封了 80 和 443。
    Hmily
        43
    Hmily  
       2017-11-24 09:52:40 +08:00
    可以在域名解析上区分析蜘蛛线路,可以选择重要蜘蛛回源不走 cdn,cdn 过来的假蜘蛛可以屏蔽。
    8355
        44
    8355  
       2017-11-24 10:26:12 +08:00
    其实你的 PV 很可能超过 3000 因为现在浏览器的广告屏蔽插件都会屏蔽百度统计的 js 加载 所以实际上可能没有你看到的那么少.
    kaer
        45
    kaer  
       2017-11-24 17:07:28 +08:00
    @IzY 开什么玩笑咯。我们靠这点广告吃饭早就倒闭了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5500 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 03:13 · PVG 11:13 · LAX 19:13 · JFK 22:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.