使用python

时间:2017-03-02 04:59:12

标签: python html parsing beautifulsoup pre

我有一个HTML文件,其中包含pre标签中的数据。我想逐行解析pre标签中的数据,并根据每行中的时间戳执行排序。如何使用python进行排序。

<pre>**Date Time DataFeed**
10/01/1994 10:00:00 Go_to_sleep
.......
.......</pre>

1 个答案:

答案 0 :(得分:0)

In [1]: import bs4

In [2]: text = '''<pre>**Date Time DataFeed**
   ...: 10/01/1994 10:00:00 Go_to_sleep
   ...: 10/01/1994 10:00:00 Go_to_sleep
   ...: 10/01/1994 10:00:00 Go_to_sleep
   ...: 10/01/1994 10:00:00 Go_to_sleep</pre>'''

In [3]: soup = bs4.BeautifulSoup(text, 'lxml')

In [4]: soup.pre.get_text()
Out[4]: '**Date Time DataFeed**\n10/01/1994 10:00:00 Go_to_sleep\n10/01/1994 10:00:00 Go_to_sleep\n10/01/1994 10:00:00 Go_to_sleep\n10/01/1994 10:00:00 Go_to_sleep'
In [6]: soup.pre.get_text().splitlines()
Out[6]: 
['**Date Time DataFeed**',
 '10/01/1994 10:00:00 Go_to_sleep',
 '10/01/1994 10:00:00 Go_to_sleep',
 '10/01/1994 10:00:00 Go_to_sleep',
 '10/01/1994 10:00:00 Go_to_sleep']

在bs4中,带换行符的html代码会转换为\n,您可以使用splitlines()将其拆分为列表。