如何使用python和BeautifulSoup打印每行的时间戳/上次更新时间(来自HTML)?

c9qzyr3d  于 2022-10-22  发布在  Python
关注(0)|答案(1)|浏览(188)

如何使用python和BeautifulSoup打印每行的时间戳/上次更新时间(来自HTML)?
1.我可以添加打印内容吗
a) 日期/时间-显示执行python代码的时间
b) HTML的上次更新时间:
HTML结构:

td x 1 including 
  two tables 
  each table have few "tr"
  and within "tr" have few "td" data inside

HTML格式:

<td>

<table width="100%" border="4" cellspacing="0" bordercolor="white" align="center">
    <tbody> 
      <tr>
          <td colspan="2" class="verd_black11">Last Updated: 18/08/2014 10:19</td>
      </tr>
      <tr>
          <td colspan="3" class="verd_black11">All data delayed at least 15 minutes</td>
      </tr>
    </tbody>
</table>

<table width="100%" border="4" cellspacing="0" bordercolor="white" align="center">
  <tbody id="tbody">
    <tr id="tr0" class="tableHdrB1" align="center">
      <td align="centre">C Aug-14 - 15000</td>
      <td align="right"> - </td>
      <td align="right">5</td>
      <td align="right">9,904</td>
    </tr>
  </tbody>
</table>

  </td>

代码:

import urllib2 
from bs4  import BeautifulSoup

contenturl = "HTML:"
soup = BeautifulSoup(urllib2.urlopen(contenturl).read())

table = soup.find('tbody', attrs={'id': 'tbody'})

rows = table.findAll('tr')
for tr in rows:
    cols = tr.findAll('td')
    for td in cols:
        t = td.find(text=True)
        if t:
            text = t + ';'
        print text,
    print

上述代码的输出

C Aug-14 - 15000 ; - ; 5 ; 9,904

预期产出:

C Aug-14 - 15000 ; - ; 5 ; 9,904  ; 18/08/2014 ; 13:48:00 ; 18/08/2014 ; 10:19
                                      (execute python code)    (last updated time)
cnwbcb6i

cnwbcb6i1#

要获取代码执行的时间:

import datetime from datetime
code_executes = datetime.now()

然后从code_executes元组中选择所需的片段,并将其格式化为字符串,以便稍后插入下面的print语句
要获得“最后更新”位,您需要读取顶部的表,因为它没有您指定的id属性。如果html只有2个表,您可能可以删除漂亮汤的id规范,您将获得两个表。
要获取时间,请使用str.startswih(“Last Updated:”)并获取之后的内容(字符串切片将起作用)
最后,在打印时,将您的两次粘贴到线条上

相关问题