<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() 会报错 可能是版本的问题
来源:CSDN
作者:sauceliutong
链接:https://blog.csdn.net/sauceliutong/article/details/103926362