zoukankan      html  css  js  c++  java
  • input内容,输入账号密码

    在爬取需要输入账号密码的网页时,我们需要找到可填写内容的标签。记得之前写过,但是没有记住。

    这回重新梳理一下,如何可找到这个标签

    以极验后台登录网站为例:https://auth.geetest.com/login/

    代码:D:spider1111111111111111exvenv滑块验证码CrackGeetest-mastercrack.py

    初始化
    url = 'https://account.geetest.com/login'
    browser = webdriver.Chrome() #谷歌浏览器的模拟driver
    self.wait = WebDriverWait(self.browser, 20)
    self.email = EMAIL
    self.password = PASSWORD

    browser.get(self.url)  #get请求
    email = self.browser.find_element_by_xpath('//input[@placeholder="请输入邮箱"]')
    password = self.browser.find_element_by_xpath('//input[@placeholder="请输入密码"]')
    email.send_keys(self.email)
    password.send_keys(self.password)
    #这是自动输入账号密码的代码

    可是在找寻输入标签的时候进入了误区,一直没有做有些忘了,一时没有想明白就用百度重新试验了下。在百度的input中是这样的
    <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">,。
    之后又输入了内容查看,是这样的:
    <input id="kw" name="wd" class="s_ipt" value="p我输入的内容" maxlength="255" autocomplete="off">

    确认了输入的内容确实进入了标签input的属性value中了
    注意:在查看源码时检查下的Element,里面的代码不是完整的,有javesprict动态是看不到的,需要在Network下选择www.baidu.com(例百度)Respone中。


    回到极验后台登录中,用XPath找到input标签,
    email = self.browser.find_element_by_xpath('//input[@placeholder="请输入邮箱"]')
    再用send_kets()发送
    email.send_keys(self.email)
    这样就可成功输入账号密码了。还可以调用time.sleep(5),来等待网络

    注意在模块中已有延时等待。延时等待分为隐式等待,与显式等待,显式等待效果好一些,在之后的内容会有应用

     
  • 相关阅读:
    mysql 表的类型
    【Mysql优化】key和index区别
    [置顶] 步步辨析JS中的对象成员
    [置顶] C语言单元测试框架
    代码规范总结
    AFNetworking、MKNetworkKit和ASIHTTPRequest对比
    在SQL中使用PL/SQL函数存在的问题
    C++中一个函数隐藏的有趣例子
    深入浅出Mybatis-分页
    SRM 207 Div II Level Two: RegularSeason,字符串操作(sstream),多关键字排序(操作符重载)
  • 原文地址:https://www.cnblogs.com/qq376142178/p/12266532.html
Copyright © 2011-2022 走看看