1.问题描述
通过urllib2.urlopen().read()
打印出的html源码中tbody有多对tr标签,但是使用soup.findAll("tbody")
获取的tr标签就只有两对,而且内容不全,希望大神帮助。
2. 源代码:
# -*- coding: UTF-8 –*-
import urllib2
from bs4 import BeautifulSoup
Url = 'http://guojijuzhuqufh.fang.com/chengjiao/'
response = urllib2.urlopen(Url)
text = response.read().decode('gbk')
soup = BeautifulSoup(text, "lxml")
tbodyList = soup.findAll("tbody")
for li in tbodyList:
print li
3. 网页部分源代码
> <table>
> <tbody>
>
> <tr>
> <th>成交日期</th>
> <th>成交价</th>
> <th>单价</th>
>
> <th>户型</th>
>
> <th>建筑面积</th>
> <th>楼层</th>
> <th>朝向</th>
> <th>服务经纪人</th>
> <th>来源</th>
> </tr>
>
>
> <!--出售成交记录-->
>
> <tr>
> <td>2016-07-26</td>
> <td>197万</td>
> <td>19777元/㎡</td>
> <td>2室2厅</td>
> <td>100㎡</td>
> <td>高层/32层</td>
> <td>南向</td>
> <td>计谋</td>
> <td>房天下成交</td>
> </tr>
>
> <tr>
> <td>2016-05-27</td>
> <td>200万</td>
> <td>20078元/㎡</td>
> <td>2室2厅</td>
> <td>100㎡</td>
> <td>高层/32层</td>
> <td>西南向</td>
> <td>杜小波</td>
> <td>房天下成交</td>
> </tr>
>
> <tr>
> <td>2016-05-10</td>
> <td>286万</td>
> <td>22236元/㎡</td>
> <td>3室2厅</td>
> <td>129㎡</td>
> <td>高层/31层</td>
> <td>南向</td>
> <td>计谋</td>
> <td>房天下成交</td>
> </tr>
>
> <tr>
> <td>2016-04-04</td>
> <td>182万</td>
> <td>18336元/㎡</td>
> <td>2室2厅</td>
> <td>99㎡</td>
> <td>高层/32层</td>
> <td>--</td>
> <td>李方宏</td>
> <td>房天下成交</td>
> </tr>
>
> <tr>
> <td>2016-03-20</td>
> <td>185万</td>
> <td>18587元/㎡</td>
> <td>2室1厅</td>
> <td>100㎡</td>
> <td>低层/32层</td>
> <td>--</td>
> <td>张巧芊</td>
> <td>房天下成交</td>
> </tr>
>
> <tr>
> <td>2016-02-28</td>
> <td>335万</td>
> <td>18376元/㎡</td>
> <td>4室2厅</td>
> <td>182㎡</td>
> <td>高层/32层</td>
> <td>南北向</td>
> <td>陈三元</td>
> <td>房天下成交</td>
> </tr>
>
> <tr>
> <td>2016-01-04</td>
> <td>328万</td>
> <td>19197元/㎡</td>
> <td>4室2厅</td>
> <td>171㎡</td>
> <td>中层/32层</td>
> <td>南北向</td>
> <td>刘媛媛</td>
> <td>房天下成交</td>
> </tr>
>
> <tr>
> <td>2015-12-09</td>
> <td>168.5万</td>
> <td>16962元/㎡</td>
> <td>2室2厅</td>
> <td>99㎡</td>
> <td>高层/32层</td>
> <td>--</td>
> <td>陈三元</td>
> <td>房天下成交</td>
> </tr>
>
> <tr>
> <td>2015-08-10</td>
> <td>186万</td>
> <td>15067元/㎡</td>
> <td>3室2厅</td>
> <td>123㎡</td>
> <td>高层/32层</td>
> <td>--</td>
> <td>谭文龙</td>
> <td>房天下成交</td>
> </tr>
>
> <tr>
> <td>2015-07-10</td>
> <td>215万</td>
> <td>16716元/㎡</td>
> <td>3室2厅</td>
> <td>129㎡</td>
> <td>中层/32层</td>
> <td>东西向</td>
> <td>左亚凤</td>
> <td>房天下成交</td>
> </tr>
>
>
> <!--出租成交记录-->
>
>
> </tbody>
4.运行结果
C:\Python27\python.exe D:/Users/Brill/PycharmProjects/FangSpider/FTXData/test.py
<tbody>
<tr></tr>
</tbody>
<tbody>
<tr>
<th>成交日期</th>
<th>成交价</th>
<th>单价</th>
<th>户型</th>
<th>建筑面积</th>
<th>楼层</th>
<th>朝向</th>
<th>服务经纪人</th>
<th>来源</th>
</tr>
<!--出售成交记录-->
<tr>
<td>2016-07-26</td>
<td>197万</td>
<td>19777元/㎡</td>
<td>2室2厅</td>
<td>100㎡</td>
<td>高层/32层</td>
<td>南向</td>
<td>计谋</td>
<td>房天下成交</td>
</tr>
<tr>
<td>2016-05-27</td>
<td>200万</td>
<td>20078元/㎡</td>
<td>2室2厅</td>
<td>100㎡</td>
<td>高层/32层</td>
<td>西南向</td>
<td>杜小波</td>
</tr></tbody>
Process finished with exit code 0
5. 结果截图
原因是因为这个html的文件是不规范的html 导致不同的html parser对他的结果不一样 可以考虑换parser
soup = BeautifulSoup(text, 'html.parser')
结果是成功的