2015-09-05 55 views
0

所以我有一個頁面,下面的HTML,它顯然做得很差,但我需要運行一些自動化,其中包括獲取下面的日期。使用beautifulsoup來提取難以識別的數據

<tr> 
    <td class="bold"> 
     Last Login 
    </td> 
    <td colspan="3" class="usual"> 
     4/1/2011 at 07:01:11 AM   </td> 
    </tr> 

理想情況下,我想提取第二<td>的內容,然後將其轉換爲Unix的時間,但只是抓住這將是足夠的。

我在想這可以用正則表達式來完成,但是你必須通過它重複幾次來拉取內容。

回答

1

如果你問如何與BeautifulSoup找到所需的元素,我真的找到它基於這聽起來非常堅實的Last Login格文本(雖然我不知道大局觀是什麼):

import re 

from bs4 import BeautifulSoup 

data = """ 
<tr> 
    <td class="bold"> 
     Last Login 
    </td> 
    <td colspan="3" class="usual"> 
     4/1/2011 at 07:01:11 AM   </td> 
</tr> 
""" 

soup = BeautifulSoup(data) 
last_login = soup.find("td", text=re.compile(r"Last Login")).find_next_sibling("td").get_text(strip=True) 
print last_login 

哪打印4/1/2011 at 07:01:11 AM

要獲得時間戳,字符串加載到使用strptime()和使用的解決方案,從Convert datetime to Unix timestamp and convert it back in python一個datetime對象來獲取時間戳:

from datetime import datetime 
import time 

last_login_date = datetime.strptime(last_login, "%m/%d/%Y at %H:%M:%S %p") 
print(time.mktime(last_login_date.timetuple())) 
+0

完美的作品,非常感謝! – azamatms