第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python BeautifulSoup解析表

python BeautifulSoup解析表

SMILET 2019-11-08 10:27:54
我正在學(xué)習(xí)python requests和BeautifulSoup。為了進行練習(xí),我選擇編寫一個快速的NYC停車票解析器。我能夠得到一個非常丑陋的html響應(yīng)。我需要抓住lineItemsTable并解析所有票證。您可以通過以下方法復(fù)制頁面:https://paydirect.link2gov.com/NYCParking-Plate/ItemSearch輸入NY圖版T630134Csoup = BeautifulSoup(plateRequest.text)#print(soup.prettify())#print soup.find_all('tr')table = soup.find("table", { "class" : "lineItemsTable" })for row in table.findAll("tr"):    cells = row.findAll("td")    print cells有人可以幫我嗎?簡單地尋找所有東西tr并不能幫助我。
查看完整描述

3 回答

?
森欄

TA貢獻1810條經(jīng)驗 獲得超5個贊

干得好:


data = []

table = soup.find('table', attrs={'class':'lineItemsTable'})

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

這給您:


[ [u'1359711259', u'SRF', u'08/05/2013', u'5310 4 AVE', u'K', u'19', u'125.00', u'$'], 

  [u'7086775850', u'PAS', u'12/14/2013', u'3908 6th Ave', u'K', u'40', u'125.00', u'$'], 

  [u'7355010165', u'OMT', u'12/14/2013', u'3908 6th Ave', u'K', u'40', u'145.00', u'$'], 

  [u'4002488755', u'OMT', u'02/12/2014', u'NB 1ST AVE @ E 23RD ST', u'5', u'115.00', u'$'], 

  [u'7913806837', u'OMT', u'03/03/2014', u'5015 4th Ave', u'K', u'46', u'115.00', u'$'], 

  [u'5080015366', u'OMT', u'03/10/2014', u'EB 65TH ST @ 16TH AV E', u'7', u'50.00', u'$'], 

  [u'7208770670', u'OMT', u'04/08/2014', u'333 15th St', u'K', u'70', u'65.00', u'$'], 

  [u'$0.00\n\n\nPayment Amount:']

]

需要注意的幾件事:


上面輸出中的最后一行,付款金額不是表格的一部分,而是表格的布局方式。您可以通過檢查列表的長度是否小于7來過濾掉它。

由于每行的最后一列是輸入文本框,因此必須分別處理。


查看完整回答
反對 回復(fù) 2019-11-08
?
德瑪西亞99

TA貢獻1770條經(jīng)驗 獲得超3個贊

解決了,這是您解析其html結(jié)果的方式:


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

for row in table.findAll("tr"):

    cells = row.findAll("td")

    if len(cells) == 9:

        summons = cells[1].find(text=True)

        plateType = cells[2].find(text=True)

        vDate = cells[3].find(text=True)

        location = cells[4].find(text=True)

        borough = cells[5].find(text=True)

        vCode = cells[6].find(text=True)

        amount = cells[7].find(text=True)

        print amount


查看完整回答
反對 回復(fù) 2019-11-08
  • 3 回答
  • 0 關(guān)注
  • 1175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號