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

请教: Python 爬虫 selenium 使用谷歌 headless,页面跳转的问题?

  •  
  •   88235268 · 2018-07-30 10:07:35 +08:00 · 1745 次点击
    这是一个创建于 2336 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本小菜最近在做一个爬虫抓数据,遇到个问题,请教各位大佬。

    在使用 selenium 与谷歌浏览器抓取数据时,在正常模式下程序是没问题的,但是在 headless 模式下,由于没有 handle,所以会识别不了哪个 tab 页面,比较苦恼。好几天了也没有解决,网上也找不到相关解决办法。

    程序基本流程就是:
    页面 1:selenium 自动 输入用户名、密码,登陆成功。然后点击页面内的一个图标链接,此时会跳一个新的页面(页面 2 )。
    页面 2:页面 2 打开后,点击其中某个链接,会再跳出一个新的页面(页面 3 )。
    页面 3:抓取页面 3 中的相关内容。

    现在的问题:
    这些新的 tab 页面,页面 2、页面 3 在 headless 模式下怎么定位到,求救!
    inoki
        1
    inoki  
       2018-07-30 14:09:17 +08:00 via Android
    登录成功后,find element 到 a 元素,把 a 元素的 href 提取出来,driver 去 get。
    打开新的标签页也不过是把 a 元素的 target 属性给了在新窗口打开的值而已。
    88235268
        2
    88235268  
    OP
       2018-07-30 15:01:47 +08:00
    @inoki 忘记说了,这个链接是通过 js 方法跳转的,方法比较复杂,最终生成的链接上加上了 sessionid 等较多参数,我尝试过用 selenium 直接执行 js,但是由于定位不到哪个 tab 页面,所以失败。 如果是个 href 的值就好了 :(:(
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2687 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:10 · PVG 20:10 · LAX 04:10 · JFK 07:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.