机器在学习
最近需要在58同城上采集一些信息来做分析,决定使用selenium来进行爬虫。
但是在登录58同城的时候就遇到了问题,使用selenium无法获取到元素。后来看了58同城上面的HTML才发现原因。
58同城的登录地址:https://passport.58.com/login,我们看一下这一个区域对应的HTML吧。
用户名是很容易可以被selenium获取到的,但是密码却始终获取不到,仔细看了一下,密码输入栏对应的HTML总共有两条。
这里的两条对应的是啥意思呢?通过查找才发现,这个问题是前端做密码登录的时候经常会使用的一个技巧,第一个input的style=”display: inline-block;”,而第二个input的style=”display: none;”,实际上,这两个输入框叠加到了一起,我们看到的是第一个input框,而输入需要获取第2个input输入框才可以,只有在你点击了第一个input框,第二个input框才能个改变style的值为style=”display: inline-block;”,只有这样才可以被selenium获取到
那怎么搞?实际上有两个方法。
方法一这里不阐述了
方法二需要执行以下代码:
js = "document.getElementById('passwordUser').style.display='block';" driver.execute_script(js)
执行了这个操作后,就可以使用selenium获取到密码框啦!看一下执行了js后的效果吧!可以看到在下图中,密码框变成了两个,第二个才是有效的密码输入框。
看来爬虫工程师都应该是懂前端的,这个观点是一点都没错。
希望自己的经验可以变得越来越丰富~
The End
已发布
分类
标签:
fuck牛逼!!
强锅锅?
您的电子邮箱地址不会被公开。 必填项已用*标注
评论 *
显示名称
电子邮箱地址
网站地址
Δ
发表回复