爬虫学习Day5:学习selemium

任务

【Task5 安装selenium并学习】:(1天)

安装selenium并学习。

使用selenium模拟登陆163邮箱。

163邮箱直通点:https://mail.163.com/

安装selenium

pip3 install selenium

使用selenium打开网址

from selenium import webdriver
brower = webdriver.Firefox()
brower.get('http://mail.163.com/')

此时会弹Firefox(前提是电脑上安装了Firefox,我用的是mac osx)
在URL地址栏有一个机器人的图标,把鼠标放上去,会显示“浏览器正被远程控制”
在这里插入图片描述

寻找输入用户名及密码的框

>>> browser.find_element_by_name("email").send_keys("username")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'browser' is not defined

按照网上的文章直接输入以上内容,结果是NameError
再找,看到这样的写法:

browser.switch_to.frame('x-URS-iframe')
#仍然报错:
selenium.common.exceptions.NoSuchFrameException: Message: x-URS-iframe

再找:

browser.switch_to.frame(browser.find_element_by_xpath("//iframe[starts-with(@id,'x-URS-iframe')]"))
# iframe是第一个大坑,必须切入才行,第二大坑是这个iframe的id是动态的,直接搞死初学者,解决办法是用starts-with

寻找Frame

知道有Frame,不知道怎么找,先通过view page source, 到HTML 源码去查找,结果没有找到.
通过网上,看人家的文章,才了解到要这样去查找:
Inspect -> 定位到要找的目标登录框,在Elements中,搜索frame,可以看到<iframe name="" frameborder=“0” id=“x-URS-iframe1551831793413.544” …
在这里插入图片描述

登录进入系统

browser.find_element_by_xpath("//input[starts-with(@id,'auto-id-')]").send_keys("******")
time.sleep(0.5)
browser.find_element_by_xpath("//input[starts-with(@placeholder,'输入密码')]").send_keys("*******")
time.sleep(0.5)
browser.find_element_by_xpath('//*[@id="dologin"]').click()
time.sleep(0.5)

解决以上两个问题,后面就顺了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值