【发布时间】:2019-10-20 20:29:25
【问题描述】:
我正在尝试解析一个网页,我想在其中抓取具有 bgcolor 属性的“tr”元素。以下是网页的html:
<table cellspacing="0" cellpadding="15" id="MainContent_GridView1" style="color:#333333;border-collapse:collapse;">
<tr style="color:White;background-color:#045D99;font-weight:bold;">
<th scope="col"><a href="javascript:__doPostBack('ctl00$MainContent$GridView1','Sort$name')" style="color:White;">ORGANIZATION NAME</a></th><th scope="col"><a href="javascript:__doPostBack('ctl00$MainContent$GridView1','Sort$state')" style="color:White;">STATE</a></th><th scope="col"><a href="javascript:__doPostBack('ctl00$MainContent$GridView1','Sort$year')" style="color:White;">YEAR</a></th><th scope="col"><a href="javascript:__doPostBack('ctl00$MainContent$GridView1','Sort$rt')" style="color:White;">FORM</a></th><th scope="col"><a href="javascript:__doPostBack('ctl00$MainContent$GridView1','Sort$pc')" style="color:White;">PAGES</a></th><th scope="col"><a href="javascript:__doPostBack('ctl00$MainContent$GridView1','Sort$ta')" style="color:White;">TOTAL ASSETS</a></th><th scope="col"><a href="javascript:__doPostBack('ctl00$MainContent$GridView1','Sort$ein')" style="color:White;">EIN</a></th>
</tr><tr style="color:#333333;background-color:#ECEEF2;">
<td><a href="//990s.foundationcenter.org/990_pdf_archive/231/231352298/231352298_201702_990.pdf">Zoological Society of Philadelphia Philadelphia Zoo</a></td><td>PA</td><td>2017</td><td>990 </td><td align="right">68</td><td align="right">$124,163,973.00</td><td style="white-space:nowrap;">23-1352298</td>
</tr><tr style="color:#333333;background-color:White;">
<td><a href="//990s.foundationcenter.org/990_pdf_archive/231/231352298/231352298_201602_990.pdf">Zoological Society of Philadelphia</a></td><td>PA</td><td>2016</td><td>990 </td><td align="right">61</td><td align="right">$125,008,026.00</td><td style="white-space:nowrap;">23-1352298</td>
</tr><tr style="color:#333333;background-color:#ECEEF2;">
<td><a href="//990s.foundationcenter.org/990_pdf_archive/231/231352298/231352298_201502_990.pdf">Zoological Society of Philadelphia</a></td><td>PA</td><td>2015</td><td>990 </td><td align="right">63</td><td align="right">$131,880,929.00</td><td style="white-space:nowrap;">23-1352298</td>
</tr>
</table>
我正在尝试使用样式元素抓取 tr 元素
style="color:White;background-color:#045D99;font-weight:bold;"
下面是我的代码:
import requests
from bs4 import BeautifulSoup
data = requests.get(url).text
soup = BeautifulSoup(data,"lxml")
elems = soup.find_all('tr',style"color:White;background-color:#045D99;font-weight:bold;")
但是我的 elems 返回为空。同样在我的汤元素中,我看到:
style="color:White;background-color:#045D99;font-weight:bold;"
已改为
<tr bgcolor="#ECEEF2">
我不确定这是否是导致问题的原因,还有没有办法将整个表格作为 pandas 数据框进行抓取?
编辑:
我的代码中有错字,下面是正确的代码:
soup.find_all('tr',{"style":"color:White;background-color:#045D99;font-weight:bold;"})
与答案中提到的相同,但我仍然得到空结果
再编辑一次:
即使在建议之后,我仍然得到空结果。 html来自以下网页:
http://990finder.foundationcenter.org/990results.aspx?990_type=&fn=AMERICAN+HEART+ASSOCIATION&st=&zp=&ei=&fy=&action=Search
我正在尝试解析网页中的表格
【问题讨论】:
-
你期望什么输出?
标签: python python-3.x pandas html-table beautifulsoup