我有一個來自Nose的測試報告文件,格式爲html。我想在Python中從文本中提取部分文本。我將通過郵件中的電子郵件發送該郵件。來自Beautiful Soup的HTML數據需要格式化
我有以下樣品:
<table>
<tr>
<th>Class</th>
<th class="failed">Fail</th>
<th class="failed">Error</th>
<th>Skip</th>
<th>Success</th>
<th>Total</th>
</tr>
<tr>
<td>Regression_TestCase</td>
<td class="failed">1</td>
<td class="failed">9</td>
<td>0</td>
<td>219</td>
<td>229</td>
</tr>
<tr>
<td><strong>Total</strong></td>
<td class="failed">1</td>
<td class="failed">9</td>
<td>0</td>
<td>219</td>
<td>229</td>
</tr>
</table>
如果我打開的格式是這樣的,因爲我想要的文字瀏覽器中的文件:這是我想從HTML文件中提取文本。
Class Fail Error Skip Success Total
Regression_TestCase 1 9 0 219 229
使用BeautifulSoup4在Python27我已成功地提取了以下內容:
[<th>Class</th>, <th class="failed">Fail</th>, <th class="failed">Error</th>, <th>Skip</th>, <th>Success</th>, <th>Total</th>]
[<td>Regression_TestCase.RegressionProject_TestCase2.RegressionProject_TestCase2</td>, <td class="failed">1</td>, <td class="failed">9</td>, <td>0</td>, <td>219</td>, <td>229</td>, <td><strong>Total</strong></td>, <td class="failed">1</td>, <td class="failed">9</td>, <td>0</td>, <td>219</td>, <td>229</td>]
我的代碼如下:
def extract_pass_summary_from_selenium_report():
html_report = open(r"C:\test_runners\selenium_regression_test_5_1_1\ClearCore 501 - Regression Test\TestReport\SeleniumTestReport.html",'r').read()
soup = BeautifulSoup(html_report, "html.parser")
print soup.find_all('th')
print soup.find_all('td')
我如何才能提取文本,並保留原來的格式喜歡這個:?
Class Fail Error Skip Success Total
Regression_TestCase 1 9 0 219 229
感謝,里亞茲
謝謝,我可以與路徑替換數據報告HTML文件如c:\ testreport.html,因爲我將從文件 –
讀取@RiazLadhani用文件對象替換'StringIO(data)'部分:例如'pd.read_html(開(路徑))'。謝謝。 – alecxe