推荐学习书目
› 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
soulmine
V2EX  ›  Python

selenium 的滑动问题

  •  
  •   soulmine · Aug 22, 2016 · 4643 views
    This topic created in 3735 days ago, the information mentioned may be changed or developed.
    请问一下 如果用 selenium 控制滑条用 driver.execute_script("window.scrollTo(0,1000)")这个可以实现
    但假如有个网站有 1000000 的像素长度 怎么办 也没法用 for 语句 总不能写 1000 行这个吧
    一次性划到 10000000 长度的话,会不会被 ban 了 然后由于是动态加载的,一次性话恐怕没那么快能读取出来 所以有什么好的解决方法么
    16 replies  •  2016-08-23 09:27:20 +08:00
    jason52
    jason52
    Aug 22, 2016 via Android
    1
    极验证?
    soulmine
    soulmine
    OP
    Aug 22, 2016
    2
    @jason52 这是什么?能大概说一下么
    skydiver
    skydiver
    Aug 22, 2016
    3
    为什么不能用 for 语句?没懂
    soulmine
    soulmine
    OP
    Aug 22, 2016
    4
    @skydiver driver.execute_script("window.scrollTo(0,1000)" 这个是把 window.scrollTo(0,1000)当作 str 来运行的啊 在 oython 里面运行 js 脚本的 你上面写 for i in range 底下就会输出 window.scrollTo(0,i) 这不是引用啊.....
    skydiver
    skydiver
    Aug 22, 2016
    5
    @soulmine 你不会自己拼字符串么……好笨……
    FrankFang128
    FrankFang128
    Aug 22, 2016 via Android
    6
    这种像素高度的页面 没几个人有耐心等待加载完
    soulmine
    soulmine
    OP
    Aug 22, 2016
    7
    @skydiver 你是说自己拼 js 字符串么....
    soulmine
    soulmine
    OP
    Aug 22, 2016
    8
    @FrankFang128 没加载完就继续往下拉 没问题么?
    soulmine
    soulmine
    OP
    Aug 22, 2016
    9
    @FrankFang128 试了下 拉到第一次加载中就停住了 所以一次性拉完不现实啊
    skydiver
    skydiver
    Aug 22, 2016
    10
    @soulmine 是啊……
    soulmine
    soulmine
    OP
    Aug 22, 2016
    11
    @skydiver 嗯 我自己找到方法了 也多谢你了
    kisnows
    kisnows
    Aug 22, 2016
    12
    可以执行 js 语句并拿到当前页面的长度,知道了页面高度,下面就很好半了。
    soulmine
    soulmine
    OP
    Aug 22, 2016
    13
    @kisnows 其实主要不是高度的问题 是我在纠结没法一次性拉到底的问题 后来我想到可以用 for 循环用 scroolby 拉就好了
    kisnows
    kisnows
    Aug 22, 2016
    14
    @soulmine 你只要拿到了页面整体的高度,那么就可以一次拉到底了啊。
    ```javascript
    driver.executeScript(`document.body.scrollHeight`)
    .then(top => {
    windowHeight = top
    js = `window.scrollTo(0,${windowHeight*1.1})`
    driver.executeScript(js)
    })
    ```
    大致就是这么个意思。
    soulmine
    soulmine
    OP
    Aug 23, 2016
    15
    @kisnows 呃 是动态刷新的了啦 就是那个评论加载中那种意味 没刷新出来没法拉的啊
    kisnows
    kisnows
    Aug 23, 2016
    16
    @soulmine 哦,这样啊。那就只能时时检测了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3900 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 09:42 · PVG 17:42 · LAX 01:42 · JFK 04:42
    ♥ Do have faith in what you're doing.