<table id="table" width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="from_w">
<tbody><tr>
<td width="20%" align="right" class="tdlable">1</td>
<td width="30%" align="left" class="tdvalue">2</td>
<td width="20%" align="right" class="tdlable">1<font color="#FF0000">*</font> </td>
<td width="30%" align="left" class="tdvalue">2 </td>
</tr>
<tr class="evenRow">
<td align="right" class="tdlable">2<font color="#FF0000">*</font> </td>
<td class="tdvalue"></td>
<td align="right" class="tdlable">1<font color="#FF0000">*</font> </td>
<td class="tdvalue">1</td>
</tr>
<tr>
<td align="right" class="tdlable">1<font color="#FF0000">*</font> </td>
<td align="left" class="tdvalue">2<input type="button" value=" " name=" " class="btn_50" disabled="disabled" style="display: none;">
</td>
<td align="right" class="tdlable">1<font color="#FF0000">*</font> </td>
<td align="left" class="tdvalue">2</td>
</tr>
<tr class="evenRow">
<td align="right" class="tdlable">1</td>
<td colspan="3" align="left" class="tdvalue"> </td>
</tr>
<tr>
<td align="right" class="tdlable">1</td>
<td colspan="3" align="left" class="tdvalue">2</td>
</tr>
<tr>
<td colspan="4" align="right" class="bartop">登記</td>
</tr>
<tr>
<td align="right" class="tdlable">登記日期 </td>
<td align="left" class="tdvalue">20191230</td>
<td align="right" class="tdlable">更新日期 </td>
<td align="left" class="tdvalue">20191230</td>
</tr>
</tbody></table>
from bs4 import BeautifulSoup
import requests
url='index.html'
html=requests.get(url)
html.encoding='gbk'
soup=BeautifulSoup(html.text,'lxml')
text=soup.select("#table>tbody>tr:nth-of-type(7)>td:nth-of-type(2)")
print(text[0].get_text())
第一段代碼爲需要抓取的html文本 ,我把他命名爲Index.html
爲防止抓取過程的中文亂碼,在Python代碼中添加了 html.encoding='gbk',
本次使用了BeautifulSoup 類庫中的 lxml 選擇器
soup 選擇器 select使用了 css 選擇器 #table>tbody>tr:nth-of-type(7)>td:nth-of-type(2) 這一行的意思是 id爲table下的 tbody下的第7個tr裏面的第二個td
text=soup.select("#table>tbody>tr:nth-of-type(7)>td:nth-of-type(2)")
輸出的結果是 <td align="left" class="tdvalue">20191230</td>
爲了直接得到 20191230 需要使用 text[0].get_text() 注意直接使用 text.get_text() 會報錯 可能是版本的問題