BeautifulSoup参数
解析器 | 使用方法 | 优势 | 劣势 |
---|---|---|---|
python标准库 | BeautifulSoup(markup,“html.parser”) | python内置标准库 执行速度适中 文档纠错能力强 | python2.7.3以前的版本 容错能力差 |
lxml HTML解析器 | BeautifulSoup(markup,“lxml”) | 速度快 文档纠错能力强 | 需要安装C语言库 |
lxml xml解析器 | BeautifulSoup(markup,[“lxml”,“xml”]) | 速度快 唯一的支持解析的xml的解析器 | 需要安装C语言库 |
html5lib | BeautifulSoup(markup,“html5lib”) | 最好的容错性 以浏览器的方式解析文档 生成html5格式的文档 | 速度慢 不依赖外部库 |
代码实现
代码
'''
部分源码
<tr class="mBg2"onmouseover="jQuery(this).addClass('bgon');
"οnmοuseοut="jQuery(this).removeClass('bgon');">
<td class="wd1">1</td>
<td class="wd2 bOS">
<a target="_blank" href="http://xf.house.163.com/gz/0SJN.html">南沙心意华庭</a></td>
<td class="wd3"><a href="#" onclick="gotrend('南沙心意华庭')"></a></td>
<td class="wd4">南沙</td>
<td class="wc5 bgOnS">4</td>
<td class="wc6">425</td>
<td class="wc7">--</td>
<td class="wc8">--</td>
<td class="wc9">658</td>
<td class="wc10">54202</td>
<td class="wc11">18</td>
<td class="wc12">1944</td>
'''
import requests
from bs4 import BeautifulSoup
url = 'http://data.house.163.com/'
res = requests.get(url=url)
# res.enconding = 'utf8' # 出现乱码需进行编码
soup = BeautifulSoup(res.text, 'lxml')
[i.get_text() for i in soup.select('.wd2.bOS a')] # 寻找class节点
[i.get_text() for i in soup.select('.wd4')]
[i.get_text() for i in soup.select('.wc5.bgOnS')][1:]
[i.get_text() for i in soup.select('.wc6')][1:]