我一直在爲一個網站製作一個網絡抓取工具,我想從一個html表格中使用.findall提取所有節點編號,或者可以工作的東西,但我正在努力獲取它,我不斷地收到錯誤,我顯然沒有把正確的標籤。試圖從Python代碼中使用python刮取數據
誰能幫助,HTML代碼如下所示
</div>
<table class="dataTable" cellpadding="5" cellspacing="0" rules="all" border="1" id="ctl00_ContentPlaceHolder1_dgNodes" style="border-collapse:collapse;">
<tr class="header noBreak">
<td> </td><td><a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$dgNodes$ctl00$ctl00','')">Node Name</a></td><td><a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$dgNodes$ctl00$ctl01','')">Description</a></td><td><a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$dgNodes$ctl00$ctl02','')">MAC Address</a></td><td><a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$dgNodes$ctl00$ctl03','')"></a>
<a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$dgNodes$ctl00$liNodeRoleHeader','')" id="ctl00_ContentPlaceHolder1_dgNodes_ctl00_liNodeRoleHeader">Node Role</a>
</td><td><a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$dgNodes$ctl00$ctl04','')">Firmware</a></td><td>
<a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$dgNodes$ctl00$lbUptimeHeader','')" id="ctl00_ContentPlaceHolder1_dgNodes_ctl00_lbUptimeHeader">Uptime</a>
</td><td><a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$dgNodes$ctl00$ctl05','')">Users</a></td>
</tr><tr onmouseover="this.className = 'highlightedRow';" onmouseout="this.className = 'normalRow';" onclick="GoToNodePage('522');" style="height:18px;">
我需要提取上的代碼的最後一行和所有其他gotonodepage號數522,但我不能弄清楚,任何幫助表示讚賞。我也想把提取的數字放入後面使用的列表中。
r2 = s2.get(webpage)
bsobjswap = BeautifulSoup(r2.content)
listy = []
for link in bsobjswap.findall('tr'):
if 'onclick' in link.attrs:
listy.append(link)
print (listy)
誤差 在bsobjswap.findall鏈接( 'TR'): 類型錯誤: 'NoneType' 對象不是可調用
您的代碼?錯誤消息? – polku
網頁= 「mycompanywebsite.com」 R2 = s2.get(網頁) bsobjswap = BeautifulSoup(r2.content) listy = [] 用於bsobjswap.findall鏈路( 'TR'): 如果的 'onClick'鏈接地址: listy.append(鏈接) print(listy) – ipmev12
錯誤是標準的TypeError:'NoneType'對象不可調用,很明顯是因爲代碼錯誤,我沒有找到任何數據 – ipmev12