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

2018-07-30 10:07:35 +08:00
 88235268
本小菜最近在做一个爬虫抓数据,遇到个问题,请教各位大佬。

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

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

现在的问题:
这些新的 tab 页面,页面 2、页面 3 在 headless 模式下怎么定位到,求救!
1747 次点击
所在节点    Python
2 条回复
inoki
2018-07-30 14:09:17 +08:00
登录成功后,find element 到 a 元素,把 a 元素的 href 提取出来,driver 去 get。
打开新的标签页也不过是把 a 元素的 target 属性给了在新窗口打开的值而已。
88235268
2018-07-30 15:01:47 +08:00
@inoki 忘记说了,这个链接是通过 js 方法跳转的,方法比较复杂,最终生成的链接上加上了 sessionid 等较多参数,我尝试过用 selenium 直接执行 js,但是由于定位不到哪个 tab 页面,所以失败。 如果是个 href 的值就好了 :(:(

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/475236

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX