<div id="findet_1" name="findet_1" >
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="thc01 w160 gL_10 UC" > Standalone</td>
<td class="thc01 w160 gL_10 tar">Jun'16</td>
<td class="thc01 w160 gL_10 tar">Mar'16</td>
<td class="thc01 w160 gL_10 tar">Dec'15</td>
<td class="thc01 w160 gL_10 tar"><div class="PR20">Sep'15</div></td>
</tr>
<tr>
<td class="thc02 w160 gD_12" >Net Sales</td>
<td class="thc02 w160 gD_12 tar">16,339.70</td>
<td class="thc02 w160 gD_12 tar">15,589.40</td>
<td class="thc02 w160 gD_12 tar">15,065.00</td>
<td class="thc02 w160 gD_12 tar"><span class="PR20">14,824.50</span></td>
</tr>
<tr>
<td class="thc02 w160 gD_12" >Other Income</td>
<td class="thc02 w160 gD_12 tar">50.10</td>
<td class="thc02 w160 gD_12 tar">46.30</td>
<td class="thc02 w160 gD_12 tar">153.30</td>
<td class="thc02 w160 gD_12 tar"><span class="PR20">1,087.40</span></td>
</tr>
<tr>
<td class="thc02 w160 gD_12" >PBDIT</td>
<td class="thc02 w160 gD_12 tar">6,612.30</td>
<td class="thc02 w160 gD_12 tar">5,930.60</td>
<td class="thc02 w160 gD_12 tar">5,543.30</td>
<td class="thc02 w160 gD_12 tar"><span class="PR20">5,416.80</span></td>
</tr>
<tr>
<td class="thc02 w160 gD_12" >Net Profit</td>
<td class="thc02 w160 gD_12 tar">1,427.50</td>
<td class="thc02 w160 gD_12 tar">1,693.90</td>
<td class="thc02 w160 gD_12 tar">1,709.10</td>
<td class="thc02 w160 gD_12 tar"><span class="PR20">2,223.70</span></td>
</tr>
</table>
</div>
我正在尝试阅读此表。但无法这样做。我正在使用beautyfulsoup findall来找到div。表存在于div中。我无法找到那张桌子。第二个问题是围绕遍历行的最佳方式。在前面的示例中,我希望以csv格式输出,应该用双引号括起来 喜欢 : &#34; STANDALONE&#34;&#34;君&#39; 16&#34;&#34;三月&#39; 16&#34;&#34;减速&#39; 15&#34;&# 34;九月&#39; 15&#34; &#34; Net Sales&#34;,&#34; 16,339.70&#34;,&#34; 15,589.40&#34;,&#34; 15,065.00&#34;,&#34; 14,824.50&#34; &#34;其他收入&#34;,&#34; 50.10&#34;,&#34; 46.30&#34;,&#34; 153.30&#34;,&#34; 1,087.40&#34; &#34; PBDIT&#34;&#34; 6,612.30&#34;&#34; 5,930.60&#34;&#34; 5,543.30&#34;&#34; 5,416.80&#34; &#34;净利润&#34;,&#34; 1,427.50&#34;,&#34; 1,693.90&#34;,&#34; 1,709.10&#34;,&#34; 2,223.70&#34; < / p>
我的代码:
html = urlopen("http://www.moneycontrol.com/india/stockpricequote/computers-software/tataconsultancyservices/TCS")
bsObj = BeautifulSoup(html, "html.parser")
link = bsObj.findAll("div", id="findet_1")
table1 = link.find('table').find_all('tr')
我知道我们可以使用get_text获取值并使用for循环遍历行。但我无法找到桌子:(
答案 0 :(得分:1)
试试这个:
table_div = html.find('div' , {'id': 'findet_1', 'name': 'findet_1' })
table = table_div.find('table')
或者
table_div = html.find('div' , {'id': 'findet_1', 'name': 'findet_1' })
table = table_div.find_all('tr')
答案 1 :(得分:-1)
唯一的区别是find_all()返回包含单个结果的列表,而find()只返回结果。
如果find_all()找不到任何内容,则返回一个空列表。如果find()找不到任何内容,则返回None:
link = bsObj.findAll("div", id="findet_1")
if link:
table1 = link[0].find('table').find_all('tr')