在抓取网页数据进行html分析的时候,以前一直使用HTMLParser,文档:http://docs.python.org/library/htmlparser.html
自从知道HTMLParser后,一直感觉他就是一个神器,分析简单快捷,几行代码搞定了。
这次在总页面抓取使用HTMLParser,没有问题,很快实现结果。但是在获取详细信息的页面时候,开始提示错误了:HTMLParseError: malformed start tag,各种google,其中有一大部分的结果是关于Beautiful Soup的,于是我了解了Beautiful Soup。HTMLParser还有一个缺点,对编码的处理也不是很友好。
开始安装的Beautiful Soup最新版本4.4.1,有问题,也是报这个错误。由于前面搜索知道换成版本3.07a就好了,直接又换了一个版本。先说官网地址:http://www.crummy.com/software/BeautifulSoup/,Beautiful Soup 3.07a下载地址:http://www.crummy.com/software/BeautifulSoup/bs3/download//3.x/。
测试通过,没有报错。能否抓取成功下面试试。正在看官方文档,版本3的文档不一样,贴地址:http://www.crummy.com/software/BeautifulSoup/bs3/documentation.zh.html
时隔二分钟,测试成功。发现Beautiful Soup更加简单,文档也不错只看了开始的例子就会用了,速度应该不会太好,不过我只是满足自己需要。很好很强大。
刚刚结合文档总结了几个用法,很多根据文档写出文档没写的例子:
#基本的标签查找
asd = soup.find('div', id="productDescription")
#可以这样写
soup.findAll('td', {'class':"bucket normal"})[0]
#想要进行查询结果中查找
aaa = BeautifulSoup(str(asd))
#查找多个不同class,或
bbb = aaa.findAll('div', {'class':["leftImage","rightImage"]})
上一篇: 用python进行排列组合生成
下一篇: 今天采集某站数据经验总结
0 Responses so far.