簡體   English   中英

使用美麗的湯解析表

[英]Parsing a table using Beautiful soup

我一直在為《美麗的湯》和一個網頁而苦苦掙扎。 我想從網頁中解析特定的表格,但是遇到了問題。 我的代碼如下:

# -*- coding: cp1252 -*-
import urllib2

from bs4 import BeautifulSoup

page    =     urllib2.urlopen("http://www.snet.gob.sv/googlemaps/workstation/main.php").read()
soup    = BeautifulSoup(page)


data = []
table = soup.find("table", { "class" : "mytable" })
table_body = table.find('tbody')

rows = table_body.find_all('tr')
for row in rows:
    cols = row.find_all('td')
    cols = [ele.text.strip() for ele in cols]
    data.append([ele for ele in cols if ele]) # Get rid of empty values

print data

它適用於其他網頁,但不適用於該網頁。 我收到以下錯誤:

table_body = table.find('tbody')
AttributeError: 'NoneType' object has no attribute 'find'

似乎沒有找到標簽“ tbody”,但是我已經檢查過了並且它在代碼中。 另一個問題是,當它起作用時(其他網頁),該表的每個項目旁邊都會出現一個“ u”。 我已經搜索了很多,但找不到問題。 謝謝你的幫助。

不,錯誤-

AttributeError: 'NoneType' object has no attribute 'find'

表示該tableNone ,這意味着該函數-

soup.find("table", { "class" : "mytable" })

返回None ,表示該頁面沒有任何表,該表的屬性類的值為mytable

您不能僅假設跨不同網頁的html完全相同(否則所有網頁的外觀都將完全相同)。

我檢查了url,確實沒有該類的表,該特定頁面中的任何表都沒有任何類。 您將需要確定要查找的表並相應地指定條件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM