2012-02-01 15 views
5

Tôi có một bảng dữ liệu như thế này:BeautifulSoup trở về dữ liệu như Không bao gồm <br> thẻ

<table class="tablesorter" id="dea"> 
<thead> 
<tr> 
<th class="header ">Name</th> 
<th class="header">City</th> 
<th class="">Address</th> 
<th class="">Phone Nos</th> 
<th class="">Email</th> 
<th class="">Fax</th> 
</tr> 
</thead> 
<tbody> 

<tr class="info"> 
<td style="font:bold 12px Tahoma; color:#1f2c48;">Audi California</td> 
<td>&nbsp;California&nbsp;</td> 
<td align="left"> 
A?85, bay Area, Phase 1, <br> 
California<br> 
California 
- 6554655 
</td> 
<td align="right"> 
<br>4747744747<br>108388383 
</td> 
<td align="center"> 
info<!-- >@_ -->@<!-- >@_ -->audiCal<!-- >@_ -->.<!-- >@_ -->net 
</td> 
<td align="right"> 
&nbsp; 
</td> 
</tr></tbody> 
</table> 

Tôi đang sử dụng BeautifulSoup để phân tích này, nhưng bây giờ tôi đã vào vấn đề trong khi lấy dữ liệu từ cuối bốn <td>. Bất cứ khi nào tôi đọc giá trị của chúng bằng cách sử dụng tài sản .string, tôi nhận được None làm giá trị. Tôi đoán điều này là bởi vì họ có <br> thẻ. Tôi muốn bốn dữ liệu cuối cùng có số <td> có địa chỉ, số điện thoại, email_id và fax. Thay vì .string tôi nên sử dụng thông tin gì để nhận tất cả dữ liệu đó?

+0

"Bốn cuối" cái gì? – poolie

Trả lời

4

Bạn có thể sử dụng .text để nhận văn bản.

Edit:

Một lựa chọn khác có thể nhận được tất cả các yếu tố sử dụng .contents và tham gia chúng khi cần thiết.

+0

Uisng .text hoạt động nhưng nó mang lại cho tôi 108388383 là 4747744747108388383 và tôi muốn nó là 4747744747,108388383: | – Anshul

0

Một khi bạn có một xử lý để td yếu tố bạn có thể sử dụng:

td.findAll(text=True) 

để có được một danh sách các phần tử con chữ của tag td. Sau đó, bạn có thể join danh sách đó trên ,

Các vấn đề liên quan