python BeautifulSoup解析表

我正在学习python requests和BeautifulSoup。为了进行练习,我选择编写一个快速的NYC停车票解析器。我能够得到一个非常丑陋的html响应。我需要抓住lineItemsTable并解析所有票证。


您可以通过以下方法复制页面:https://paydirect.link2gov.com/NYCParking-Plate/ItemSearch输入NY图版T630134C


soup = 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并不能帮助我。


SMILET
浏览 1122回答 3
3回答

森栏

干得好: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来过滤掉它。由于每行的最后一列是输入文本框,因此必须分别处理。

德玛西亚99

解决了,这是您解析其html结果的方式: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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python