【问题标题】:Python with selenium: how to get the first string in element带有硒的Python:如何获取元素中的第一个字符串
【发布时间】:2017-04-10 04:38:18
【问题描述】:

HTML:

<td rowspan="2" class="en">17-04-10<br>00:30</td>

Python代码:

lb3 = driver.find_element_by_xpath("//td[@rowspan='2']")
print (lb3.text)

结果是:

 17-04-10
 00:30

我想得到这样的字符串格式 17-04-10 00:30 ,或者只得到日期 17-04-10 因为我需要转换为 datetime 对象。

【问题讨论】:

    标签: python selenium datetime xpath


    【解决方案1】:

    传统上你可能需要使用

    //td[@rowspan='2']/text()[1]
    

    获取17-04-10,但selenium 不支持此语法,因此您可以使用Python 处理输出,如下所示:

    print (lb3.text.split()[0])
    

    获取17-04-10

    print(" ".join(lb3.text.split()))
    

    获取17-04-10 00:30

    【讨论】:

      【解决方案2】:

      使用替换函数replace("\n", "") 或text.replace("\r\n","")

      【讨论】:

        【解决方案3】:
        import re
        date=re.search(r'(\d+\S\d+\S\d+)', lb3 , re.I)
        date=(date.groups())
        print(date)
        

        此代码将找到您描述的格式(日期)的第一个对象并将其取出并将其存储为列表。请注意,如果您抓取的页面网页交替其月/年分隔符,则此代码也将起作用。

        正则表达式命令(第 2 行)将产生一个匹配对象。第 3 行将其转换为列表对象。

        当然,这确实需要创建一个额外的列表,这可能效率低下。

        更多信息:https://docs.python.org/2/library/re.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-31
          • 2019-08-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多