Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python with selenium:如何获取元素中的第一个字符串_Python_Selenium_Datetime_Xpath - Fatal编程技术网

Python with selenium:如何获取元素中的第一个字符串

Python with selenium:如何获取元素中的第一个字符串,python,selenium,datetime,xpath,Python,Selenium,Datetime,Xpath,HTML: <td rowspan="2" class="en">17-04-10<br>00:30</td> 结果是: 17-04-10 00:30 我想要像这样获取字符串格式17-04-10 00:30,或者只获取日期17-04-10,因为我需要转换到datetime对象。使用替换函数replace(“\n”,”)或text.replace(“\r\n”,”)传统上您可能需要使用 //td[@rowspan='2']/text()[1] 获取17

HTML

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

 17-04-10
 00:30

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

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

传统上您可能需要使用

//td[@rowspan='2']/text()[1]
获取
17-04-10
,但
selenium
不支持此语法,因此您可以使用
Python
处理输出,如下所示:

print (lb3.text.split()[0])
获取
17-04-10

获取
17-04-10 00:30

import re
date=re.search(r'(\d+\S\d+\S\d+)', lb3 , re.I)
date=(date.groups())
print(date)
这段代码将以您描述的格式(日期)找到第一个对象,并将其取出并存储为列表。请注意,如果您刮取的网页交替使用其月/年分隔符,则此代码也将起作用

regex命令(第2行)将生成一个匹配对象。第3行将其转换为列表对象

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

更多信息:

print(" ".join(lb3.text.split()))
import re
date=re.search(r'(\d+\S\d+\S\d+)', lb3 , re.I)
date=(date.groups())
print(date)