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
bozong
V2EX  ›  Python

数据爬取、Ajax 探讨

  •  
  •   bozong · 2017-02-23 14:29:00 +08:00 · 3109 次点击
    这是一个创建于 2820 天前的主题,其中的信息可能已经有所发展或是发生改变。

    淘宝商品月销量是 Ajax 异步加载//看回复

    18 条回复    2017-03-11 10:32:07 +08:00
    bozong
        1
    bozong  
    OP
       2017-02-23 14:31:58 +08:00

    做了请求的限制、



    请大牛们提供下思路。伪造请求 IP ?
    bozong
        2
    bozong  
    OP
       2017-02-23 14:35:49 +08:00
    目测是做了请求源的限制、、、
    allenling
        3
    allenling  
       2017-02-23 14:38:39 +08:00 via Android
    貌似这个 API 需要店铺的 session ID 这类的 token 吧,具体需要阿里的文档,哪些 API 是需要 session ID 的
    mhycy
        4
    mhycy  
       2017-02-23 14:49:29 +08:00
    代理池搞起
    bozong
        5
    bozong  
    OP
       2017-02-23 14:51:18 +08:00
    @mhycy #4 限制很严的
    xqin
        6
    xqin  
       2017-02-23 14:56:06 +08:00
    同学,你搞错 URL 了吧?
    你第一张图里明明是 `initItemDetail.htm` 这个 URL, 而你第二张图请求另一个地址是啥意思?

    你不是想获取 销量吗?

    只需要 设定 Referer 就可以请求到数据 .

    ```
    $ curl -se "https://detail.tmall.com/item.htm" "https://mdskip.taobao.com/core/initItemDetail.htm?itemId=543399704177&callback=setMdskip" | grep
    -Po "\"sellCount\":\d+,"
    "sellCount":8308,

    ```
    xqin
        7
    xqin  
       2017-02-23 14:57:42 +08:00
    curl 执行之后后面的代码是
    ```
    | grep -Po "\"sellCount\":\d+,"
    ```
    用来匹配出来 销量, 上面帖代码的时候换行了, 最后 一行是 最终的输出结果.
    bozong
        8
    bozong  
    OP
       2017-02-23 15:03:09 +08:00
    @xqin #6 噢噢噢
    bozong
        9
    bozong  
    OP
       2017-02-23 15:03:45 +08:00
    @xqin #6 设定 Referer 也不行的吧
    xqin
        10
    xqin  
       2017-02-23 15:11:13 +08:00   ❤️ 1
    @bozong 你用的工具有问题吧? 或者 你的 ip 已经 被封了?
    我上面发的 curl 的命令,你没执行一下试试?
    因 V2EX 上面帖图片不太方便, 我就不帖 curl 执行结果的截图了.
    bozong
        11
    bozong  
    OP
       2017-02-23 15:11:38 +08:00
    @xqin #10 呃呃。好像可以了。感谢
    xqin
        12
    xqin  
       2017-02-23 15:14:14 +08:00   ❤️ 1
    curl 的执行结果截图:

    bozong
        13
    bozong  
    OP
       2017-02-23 15:42:30 +08:00
    @xqin #12
    ltux
        14
    ltux  
       2017-02-23 15:46:24 +08:00
    用 selenium
    bozong
        15
    bozong  
    OP
       2017-02-23 15:47:12 +08:00
    @bozong #13 可以了。通过其他方式去请求吧
    bozong
        16
    bozong  
    OP
       2017-02-23 15:47:20 +08:00
    @ltux #14 nice
    bozong
        17
    bozong  
    OP
       2017-02-23 16:35:46 +08:00
    @xqin #12 再次感谢
    mingyun
        18
    mingyun  
       2017-03-11 10:32:07 +08:00
    @xqin
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4144 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 05:30 · PVG 13:30 · LAX 21:30 · JFK 00:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.