V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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
jahan
V2EX  ›  Python

求教有没有网页分析的软件?能够把所有的 element 抽取出来,方便 selenium 来 find?

  •  
  •   jahan · Nov 19, 2017 · 3466 views
    This topic created in 3081 days ago, the information mentioned may be changed or developed.
    分析 www.tradingview.com 一直找不到 sign in 的的 element,想请教下大家怎么分析网页?有没有好用的软件?
    18 replies    2017-11-22 20:07:21 +08:00
    summerwar
        1
    summerwar  
       Nov 19, 2017
    beautifulsoup
    jahan
        2
    jahan  
    OP
       Nov 19, 2017
    @summerwar 想用 selenium 登陆这个网站,不想用 bs,有没有办法找到 sign 的 username 和 password 的输入项目
    xmcp
        3
    xmcp  
       Nov 19, 2017


    你是说这样?
    jahan
        4
    jahan  
    OP
       Nov 19, 2017
    @xmcp 这个找到了,不知道是怎么赚到登陆界面的,点击了,也没有发现如何才能找到 username 和 password 在哪里?

    新手,实在抱歉。
    jahan
        5
    jahan  
    OP
       Nov 19, 2017
    @jahan
    @xmcp
    点击了居然浏览器地址没有任何变化,而且看这个网站的登陆界面都是如何做到用户名和密码参数传递的呢?
    jahan
        6
    jahan  
    OP
       Nov 19, 2017
    有没有可视化的工具,比如我鼠标点到了那个地方,对应地方的代码就能高亮,这样比较好找?
    iiduce
        7
    iiduce  
       Nov 19, 2017
    firebug。

    这个页面 sign in 没有直接写在 html 中,所以你找不到它。

    它是通过 js 调用的,点击 sign in,并没有新的网络请求,所以 sign in 的 html 应该封装在了 js 文件中。
    jahan
        8
    jahan  
    OP
       Nov 19, 2017
    elem = driver.find_element_by_class_name('tv-header__device-signin js-header__signin')
    #elem_1 = driver.find_element_by_link_text('#signin')
    print("elem as follows:", elem)
    #print(elem_1)

    elem_2 = driver.find_element(By.CLASS_NAME, 'tv-unauth-header')
    print("elem_2 as follows:", elem_2)

    elem_3 = driver.find_element(By.CLASS_NAME, 'tv-unauth-header__text-input js-go-to-chart-field')
    print("elem_3 as follows:", elem_3)

    找到了这几个靠近这个区域的,不过觉得不是 username 和 password 的输入哈
    hcnhcn012
        9
    hcnhcn012  
       Nov 19, 2017 via iPhone
    Chrome f12 的左上角,那里有个按钮,点一下就可以用鼠标选取元素定位了
    jahan
        10
    jahan  
    OP
       Nov 19, 2017
    @iiduce 谢谢指点,那这个需要怎么办? js 也在这个网页里面吧
    iiduce
        12
    iiduce  
       Nov 19, 2017   ❤️ 1
    @jahan 剩下的你自己研究吧,应该没有问题的。

    你的问题让我想起了工作的第一年,一些基础问题原理还没有搞明白。

    那时 V2EX 刚成立不久,这里提问被嘲笑过。所以我才来回答。
    jahan
        13
    jahan  
    OP
       Nov 19, 2017
    在这里里面的话,是不是要
    driver.get("https://www.tradingview.com/static/bundles/signin-dialog.9e33db5940f5894253d9.js ")
    password =driver.find_element(By.NAME, 'password')
    jahan
        14
    jahan  
    OP
       Nov 19, 2017
    @iiduce 做 it 基本就是这样子。感谢你的回答,热心。
    fzinfz
        15
    fzinfz  
       Nov 20, 2017
    jahan
        16
    jahan  
    OP
       Nov 20, 2017
    感谢大家,已经做完了。现在的问题是浏览速度比较慢,970 个 ticker,一个要 wait 一分钟,也就 16 个小时?就是有点慢。
    jahan
        17
    jahan  
    OP
       Nov 20, 2017
    话说这 selenium 真是太棒了。
    wx8600
        18
    wx8600  
       Nov 22, 2017
    好像 Firefox、Chrome、IE 都可以直接右键检查元素的吧?
    要在 Python 里面找的话,你可以考虑看一下 lxml (我没用过, 刚弄了一个用 beautifulsoup 的、感觉很慢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4644 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 00:11 · PVG 08:11 · LAX 17:11 · JFK 20:11
    ♥ Do have faith in what you're doing.