现在淘宝详情页销量的反爬策略是如何实现的?我使用了稳定更换 ip 的代理池,仍会被 ban。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ilovebaicai
V2EX    Python

现在淘宝详情页销量的反爬策略是如何实现的?我使用了稳定更换 ip 的代理池,仍会被 ban。

  •  
  •   ilovebaicai 2017-12-04 11:35:45 +08:00 16249 次点击
    这是一个创建于 2937 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 抓取淘宝商品月销量,使用淘宝页面的[detailskip.taobao.com],进行抓取。
    2. 有使用稳定的代理池,每隔一段时间更换。
    3. 如果对爬虫请求来说,如果我请求的每次 ip 地址都不一样,还会被 ban。那这个原因是什么?是需要带 cookie 去访问,还是淘宝使用了行为分析一类的策略?
    4. 帮忙一起分析下目前淘宝的反爬策略,谢谢!
    第 1 条附言    2017-12-04 13:13:52 +08:00
    目前是 12 个 ip 地址,ip 地址是 5 分钟轮流更换一次,使用随机的 user-agent,header+referer 访问,没使用 cookie。但是即使更换了 ip 地址,这个 ip 地址还是会被 ban。
    第 2 条附言    2017-12-04 13:16:37 +08:00
    使用的更换的 ip 地址,也是立马直接拒绝,不让访问,而不是访问一段时间才拒绝的。
    第 3 条附言    2017-12-04 22:11:46 +08:00
    1. 非常感谢大家的回复
    2. 目前汇总的可能使用策略大概表现为:
      • 淘宝使用的行为分析的一类的反爬
      • X-Forwarded-for可能会追踪到原始IP
      • 淘宝使用了蜜罐
      • 代理ip可能较少,已全被淘宝拉黑
    3. 解决方案目前未想到,需要优化代码,去尽量模拟用户真实行为去访问,抓取数据。
    4. 感谢大家热心回复,谢谢!
    49 条回复    2020-03-06 20:15:23 +08:00
    ilovebaicai
        1
    ilovebaicai  
    OP
       2017-12-04 11:45:25 +08:00
    目前发现 Amazon,也是这样的。使用了代理 ip 去请求,一段时间后,就会让你输入验证码。即使立即更换 ip,也不让访问。
    vus520
        2
    vus520  
       2017-12-04 11:47:02 +08:00
    估计是代理 IP 被记录了吧。
    ilovebaicai
        3
    ilovebaicai  
    OP
       2017-12-04 11:50:07 +08:00
    @vus520 这个可能性会有。但是我是使用 asdl 自建的代理池,IP 重复的概率不会很大。
    shaobin
        4
    shaobin  
       2017-12-04 11:54:20 +08:00
    useragent ip cookie referer 等特征结合着来
    firefox12
        5
    firefox12  
       2017-12-04 12:02:18 +08:00 via iPhone
    估计这些 ip 结合历史记录看 早就在黑名单了吧
    qu3290052
        6
    qu3290052  
       2017-12-04 12:05:02 +08:00 via Android
    1.ip 被拉黑
    2,协议头长期没变
    150
        7
    150  
       2017-12-04 12:07:14 +08:00
    我天天浏览车托之家,也经常弹出个验证框,估计也把我当成了代理爬虫
    qwertty01
        8
    qwertty01  
       2017-12-04 12:11:24 +08:00
    使用的什么爬虫?
    请求头 Cookie 之类的分析了吗?
    动态爬虫之类的用了没?
    enenaaa
        9
    enenaaa  
       2017-12-04 12:14:31 +08:00
    似乎在哪里有人说过,淘宝反爬用的逻辑回归做判断。 也就是说 ip,浏览器信息,浏览行为都会是判断因素。
    比如,如果一直只浏览某个页面, 那 99%是爬虫了。 所以需要模拟用户真实的浏览行为。
    ytmsdy
        10
    ytmsdy  
       2017-12-04 12:15:54 +08:00
    ip,cookies,referer...
    还有检查一下爬虫有没有进到蜜罐里面
    Jackeriss
        11
    Jackeriss  
       2017-12-04 12:22:52 +08:00
    有可能会根据访问频率判断,也可能你访问了只有爬虫才会访问到的隐藏链接。
    zzNucker
        12
    zzNucker  
       2017-12-04 12:28:03 +08:00
    就换个 IP 就行了? 你开玩笑吧。。
    Enivel
        13
    Enivel  
       2017-12-04 12:43:07 +08:00
    你登录了吧 爬一会会强制登录的.
    yuriko
        14
    yuriko  
       2017-12-04 13:07:50 +08:00
    ip 更换频率?分钟级的?
    ilovebaicai
        15
    ilovebaicai  
    OP
       2017-12-04 13:13:26 +08:00
    目前是 12 个 ip 地址,ip 地址是 5 分钟轮流更换一次,使用随机的 user-agent,header+referer 访问,没使用 cookie。但是即使更换了 ip 地址,这个 ip 地址还是会被 ban。
    shaobin
        16
    shaobin  
       2017-12-04 13:38:42 +08:00
    要么你换出来的 ip 已经再黑名单,要么特质太过明显
    ilovebaicai
        17
    ilovebaicai  
    OP
       2017-12-04 13:48:19 +08:00
    @shaobin 您能说下,这个请求的特质,具体点是什么?我现在使用的 header 是随机,ip 地址也是代理随机拨号的。
    wangxiaoer
        18
    wangxiaoer  
       2017-12-04 13:55:52 +08:00
    你 IP 5 6 分钟切换一次,header 随机,这就有可能在出现下面的情况:

    同一个 ip 在 5 6 分钟内的访问,每次 header 都特么不一样。

    你说这算不算特征?
    ilovebaicai
        19
    ilovebaicai  
    OP
       2017-12-04 14:05:11 +08:00   1
    @wangxiaoer 如果按照您的说法,我一个公司就一个出口 ip,如果有几十个人同时在访问淘宝,这也是算是同 ip,不同 header 访问,但是并不会被 ban。可能并不会是这个原因导致的。
    cheesea
        20
    cheesea  
       2017-12-04 14:28:20 +08:00
    X-Forwarded-for ?
    你都用上拨号了,ip 怎么才这么少,不是每次拨号都会变么。
    dewi
        21
    dewi  
       2017-12-04 14:38:46 +08:00
    @ilovebaicai MAC 地址你的是固定的,但是你的 header 随机,不查你查谁= =
    ilovebaicai
        22
    ilovebaicai  
    OP
       2017-12-04 14:45:13 +08:00
    @cheesea 预算问题。只有少量的 asdl 的拨号服务。所以 ip 地址更换的并不会很快,但是每次拨号会改变 ip 地址。
    ilovebaicai
        23
    ilovebaicai  
    OP
       2017-12-04 14:45:56 +08:00
    @dewi 这个确实是个问题,谢谢您!
    ilovebaicai
        24
    ilovebaicai  
    OP
       2017-12-04 14:46:42 +08:00
    @cheesea X-Forwarded-for 这个也可能是追踪到了原始 ip,谢谢您!
    find456789
        25
    find456789  
       2017-12-04 14:56:30 +08:00
    @dewi 网页得不到 mac 地址吧
    capo
        26
    capo  
       2017-12-04 15:01:38 +08:00
    请问一下用户的 MAC 地址是可以获取的吗?
    wang12xishan
        27
    wang12xishan  
       2017-12-04 15:12:36 +08:00
    @dewi 同问 用什么办法可以获取到 MAC 地址
    Level5
        28
    Level5  
       2017-12-04 15:17:46 +08:00   1
    网页得到 mac 地址?
    记得谷歌也是这样。换 ip 已经没用了。有人用 py 包调 IE 浏览器模拟用户请求还是一样被 ban,觉得是不是页面 JS 获取了用户鼠标事件等判断?
    smilekung
        29
    smilekung  
       2017-12-04 15:23:01 +08:00
    大概率是触发蜜罐了吧 或者是页面检测了鼠标轨迹 我碰到过 打开页面会先加载反爬 js 然后检测鼠标,不通过就不允许后续接口请求
    guotie
        30
    guotie  
       2017-12-04 15:23:51 +08:00
    mac 地址从报文中是获取不到的,路由每一跳都会更换 mac 头
    ilovebaicai
        31
    ilovebaicai  
    OP
       2017-12-04 15:29:33 +08:00
    貌似确认获取不到 mac 地址,可参考 http://www.jianshu.com/p/61b1506e4c0f。
    mazao
        32
    mazao  
       2017-12-04 15:37:04 +08:00
    除了 ie 使用 ActiveX 能获取 mac 以外,浏览器无法获取 mac 吧?不然不符合浏览器的安全协议了。 @dewi
    ilovebaicai
        33
    ilovebaicai  
    OP
       2017-12-04 15:53:08 +08:00
    @smilekung 这个是一个可能的原因,谢谢您!
    wangxiaoer
        34
    wangxiaoer  
       2017-12-04 16:35:43 +08:00
    @ilovebaicai 几十个人同时访问淘宝也不可能出现每个 ip 每个请求的 header 都随机吧。

    同一个 ip header 有不同是正常的,但是没有一个相同的就是不正常了
    binux
        35
    binux  
       2017-12-04 16:44:53 +08:00 via Android   1
    所以随机 UA 这东西是谁想出来的?
    你不去模拟真实的用户,或者你自己都不知道真实的用户行为是怎样的,不被封才怪了。
    402645707
        36
    402645707  
       2017-12-04 16:59:27 +08:00 via Android   1
    淘宝 ua 我有个建议,测试发现 ie 浏览器的 ua 可以有效避免验证码
    ryang
        37
    ryang  
       2017-12-04 19:26:25 +08:00   1
    可以考虑用 selenium+chrome 的方式爬取呢。
    目前我用公司的 ip 地址,爬 1000 条没有要求登录。猜测可能是公司人比较多,所以同一个 ip 经常会有不同的人登录或者不登录访问淘宝。
    如果用代理,爬个 10 几条就需要登录,但是用密码加短信验证码的方式登录后,再爬取 1000 多条都没有限制。
    akira
        38
    akira  
       2017-12-04 19:50:05 +08:00
    尽可能模拟真实用户提交的数据,而不是尽可能的随机
    LukeChien
        39
    LukeChien  
       2017-12-04 20:26:29 +08:00 via Android
    你的 IP 不是民用的吧,可以反向解析
    safeoy
        40
    safeoy  
       2017-12-05 00:16:36 +08:00
    试试民用宽带,ADSL 拨号换 IP
    sgissb1
        41
    sgissb1  
       2017-12-05 09:55:25 +08:00
    小伙,我这么给你说。就算不用爬虫,我们普通用户上去只要逛的多一点,也常常让我输入坑爹的验证信息。

    也许人家的策略比你认为的还暴力。
    raslan
        42
    raslan  
       2017-12-05 10:18:47 +08:00
    刷单的都让在页面上停留 30s,还要下拉到最后,所以他们的策略很细的。
    EmmaSwan
        43
    EmmaSwan  
       2017-12-05 12:38:27 +08:00 via Android
    我家信,公 ip, 整天我入,得我都不意了。
    京不需要
    EmmaSwan
        44
    EmmaSwan  
       2017-12-05 12:41:20 +08:00 via Android
    @sgissb1 是,入一次以後,如果不 ip,就不再重用入。可事上,他持你入,每商品都你一次,真的不懂怎思路
    sgissb1
        45
    sgissb1  
       2017-12-06 09:56:35 +08:00
    @EmmaSwan 这个你也遇到了?如果是真的,我前段时间就这样,幸亏我不怎么买东西。我是大半年没有开过 TB,再打开 TB,貌似就没问题了。因为路由器常年在线,所以 IP 一直是同一个公网 ip。
    EmmaSwan
        46
    EmmaSwan  
       2017-12-07 14:53:07 +08:00
    @sgissb1 经常这样,特别是傍晚到半夜这段时间. 淘宝 /天猫 /飞猪,都这样.
    没有什么真的假的,我又不是京东员工,黑淘宝作甚
    EmmaSwan
        47
    EmmaSwan  
       2017-12-07 14:57:47 +08:00
    另外, 我登录支付宝, 是 100%要求短信验证! 即便喝口水回来的功夫, 也会登录失效, 并要求再次使用短信验证码登陆. 我觉这些人就是故意的, 强迫你使用 APP.
    以前我还会用花呗买东西, 现在都不乐意用了, 因为电脑上不给你对账, 你根本不知道上个月买了什么东西, 数额对不对. 用手机来对账, 在我看来非常脑残, 不仅不能一个屏幕上开计算器, 也没有数字小键盘, 而且反复上下拖动屏幕带来的拖尾效果会让眼镜很不舒服
    sgissb1
        48
    sgissb1  
       2017-12-07 15:21:21 +08:00
    @EmmaSwan 小伙别急,我又没怀疑你。我只是想确定你和我是否一样的遭遇,毕竟我没有 1000w
    lxk11153
        49
    lxk11153  
       2020-03-06 20:15:23 +08:00
    你们说的蜜罐是啥?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2220 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 00:44 PVG 08:44 LAX 16:44 JFK 19:44
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86