4. 化平淡为神奇的BeautifulSoup
来源:互联网 发布:软件激活码拿码平台 编辑:程序博客网 时间:2024/06/03 14:19
BeautifulSoup介绍
这玩意啊,是用来解析复杂的网络结构的。
例如最普通的网页:
html head title--title head body h1--h1 div--div bodyhtml
如果是平时,我们要取得h1标签,似乎并没有办法。
但是现在我们有了BeautifuSoup,做这样的事简直是易如反掌。
安装BeautifulSoup
我们先要安装BeautifulSoup , 和之前一样都是要用pip3 install xxx来安装
还有要安装一个lxml库:http://www.lfd.uci.edu/~gohlke/pythonlibs/
平常的方法并不能安装lxml库..
这里cp36m代表python3.6,amd64代表64位系统。(windows系统)
下载完之后呢.
我们在cmd下运行:pip install lxml-3.7.3-cp35-cp35m-win_amd64.whl
这样就OK啦..
牛刀小试
例如我们要取得http://www.pythonscraping.com/pages/page1.html
这个页面的h1标签
这个URL反馈过来的全部信息是:
<html><head><title>A Useful Page</title></head><body><h1>An Interesting Title</h1><div>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div></body></html>
我们通过以下代码来获得h1标签:
import requestsfrom bs4 import BeautifulSoupdef printUrl(url): resp = requests.get(url) bsObj = BeautifulSoup(resp.text,'lxml') print(bsObj.h1)if __name__ == '__main__': url = 'http://www.pythonscraping.com/pages/page1.html' printUrl(url)
输出的结果是:
<h1>An Interesting Title</h1>
当我们要获得h1标签内的内容时,我们该怎么做?
仅仅需要的是在标签后加一个get_text()方法
print(bsObj.h1.get_text())
到目前位置,我们已经介绍了BeautifulSoup其中两个对象。
BeautifulSoup对象
前面代码展示的bsObj
标签tag对象
bsObj.h1, 即是bsObj对象直接调用子标签获得的对象。
BeautifulSoup的findAll方法
我们之前用bsObj.h1仅能获得第一个指定标签(其实上一个例子也仅有一个h1标签 ^_^)
但是现在findAll则能获得所有指定的标签!!
现在我们使用一个新的URL:
http://www.pythonscraping.com/pages/warandpeace.html
用以下方法,我们就能打印出所有class=green的span:
import requestsfrom bs4 import BeautifulSoupdef printUrl(url): resp = requests.get(url) bsObj = BeautifulSoup(resp.text,'lxml') aLLName = bsObj.findAll('span', {'class':'green'}) for name in aLLName: print(name)if __name__ == '__main__': url = 'http://www.pythonscraping.com/pages/warandpeace.html' printUrl(url)
就这样,我们就能简单快速得获取我们需要的数据,So Easy。
还有另外两个对象,我们遇到再讨论吧..
- 4. 化平淡为神奇的BeautifulSoup
- 平淡生活:为冠军喝彩
- 平淡的一天
- 平淡的生活
- 一个平淡的中午
- 平淡的爱
- 归于平淡的人生哲学
- 平淡的生活
- 平淡的生活
- 平淡的生活
- 平淡的一天
- 平淡的一天
- 平淡的日子
- 平淡的生活
- 平淡、一生的追求
- 平淡的一年
- 平淡无味的生活
- 向往平淡的全始全终
- Hdu 1421 搬寝室
- java基础之ConcurrentHashMap
- Java根据ip地址获取详细地域信息
- BZOJ 2820 莫比乌斯反演
- 8 招让你优化MySQL 查询性能
- 4. 化平淡为神奇的BeautifulSoup
- 列表---快乐工作室
- JBPM工作流原理
- shell命令--tar
- Hadoop读取文件的方法,及其错误解决
- 本地连mysql报错 1045
- SpringMVC札集(04)——SpringMVC传递参数
- Struts2知识点回顾(五)拦截器的工作流程以及如何实现
- uva题目笔记——高精度