BeautifulSoup的安装和使用
Python用做数据处理还是相当不错的,如果你想要做爬虫,python是很好的选择,它有很多已经写好的类包,只要调用,即可完成很多复杂的功能,此文中所有的功能都是基于BeautifulSoup这个包。
一、 BeautifulSoup的安装
1.器中搜索beautifulsoup ,进入beautifulsoup的文档所在网站,是英文的,不过可以转换成的中文。

2.如图所示的超链接。进入下一页。点击下载,进行下载。
3.击beautifulsoup 4.3.2,这是目前的最新版本。

4、在这一页,找到这个文件夹,点击进入。

5、选择这个超链接下载。

6、下载完成之后,进行解压。建议放在Python的安装目录。这样比较好找。

7、从解压后的文件夹,在路径目录处输入cmd进入DOS模式,输入:python setup.py install进行手动安装

注意:除了上述的安装方法也可以进行自动安装,找到pip.exe所在的目录,进入DOS系统,输入pip install BeautifulSoup4
二、 BeautifulSoup的使用
1. 首先创构造一个BeautifulSoup对象
下面有一些最简单的例子:
(1)通过字符串创建BeautifulSoup对象
from bs4 import BeautifulSoup
helloworld = '<p>Hello World</p>'
soup_string = BeautifulSoup(helloworld, "html.parser")
print(soup_string)
# 返回结果:
# <p>Hello World</p>
(2)通过类文件对象创建BeautifulSoup对象
from urllib.request import urlopen
from bs4 import BeautifulSoup url = "http://www.baidu.com"
page =urlopen(url)
soup = BeautifulSoup(page,"html.parser")
print(soup)
返回结果:

注意:因为前面说的Urllib库用urlopen()返回的就是一个类文件对象,所以这里的结果和之前Urllib中对象调用read()得到的结果是一样的。
(3)通过本地文件对象创建BeautifulSoup对象
from bs4 import BeautifulSoup
with open('index.html','r',encoding='utf-8') as foo_file :
soup_foo = BeautifulSoup(foo_file, "html.parser")
print (soup_foo)
返回结果:

注意:index.html文件要存在,并且要根据情况定义字符编码encoding
2. 获取网页中想要的内容(先要获得网页源代码,再分析网页源代码,找所对应的标签,然后提取出标签中的内容)
网址是http://movie.douban.com/top250?format=text,进入网址后就出现如下的图:

现在我需要获得当前页面的所有电影的名字,评分,评价人数,链接

由上图画红色圆圈的是我想得到的内容,画蓝色横线的为所对应的标签,这样就分析完了,现在就是写代码实现,Python提供了很多种方法去获得想要的内容,在此我使用BeautifulSoup来实现,非常的简单:
from urllib.request import urlopen
from bs4 import BeautifulSoup
from distutils.filelist import findall
page = urlopen('http://movie.douban.com/top250?format=text')
contents = page.read() # print(contents) 显示网络中的内容,格式是字节
soup = BeautifulSoup(contents,"html.parser") #print(soup)以html的格式显示内容
print("豆瓣电影TOP250" + "\n" +" 影片名 评分 评价人数 链接 ") #标题
for tag in soup.find_all('div', class_='info'): # print tag
m_name = tag.find('span', class_='title').get_text()
m_rating_score = float(tag.find('span',class_='rating_num').get_text())
m_people = tag.find('div',class_="star")
m_span = m_people.findAll('span')
m_peoplecount = m_span[3].contents[0]
m_url=tag.find('a').get('href')
print( m_name+" " + str(m_rating_score) + " " + m_peoplecount + " " + m_url )
控制台输出结果如下,你也可以写入文件中

前三行代码获得整个网页的源代码,之后开始使用BeautifulSoup进行标签分析,find_all方法是找到所有此标签的内容,然后在在此标签中继续寻找,如果标签有特殊的属性声明则一步就能找出来,如果没有特殊的属性声明就像此图中的评价人数前面的标签只有一个‘span’那么就找到所有的span标签,按顺序从中选相对应的,在此图中是第三个,所以这种方法可以找特定行或列的内容。代码比较简单,很容易就实现了,如果有什么地方不对,还请大家指出,大家共同学习
BeautifulSoup的安装和使用的更多相关文章
- python BeautifulSoup 介绍--安装
Python中,专门用于HTML/XML解析的库: 特点是: 即使是有bug,有问题的html代码,也可以解析. BeautifulSoup主要有两个版本 BeautifulSoup 3 之前的,比较 ...
- Beautifulsoup模块安装之pip命令
1.在python引用 BeautifulSoup >>>from bs4 import BeautifulSoup 发现没有该模块 2.Linux输入 # pip install ...
- [Python]BeautifulSoup安装与使用
1.BeautifulSoup简介 BeautifulSoup4和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据 ...
- python 相关安装和配置
永久链接: http://michaelzqm.iteye.com/blog/1841966 预览文章: python环境搭建 2013-04-04 博客分类: 综合 一. window环境安 ...
- 爬虫 解析库re,Beautifulsoup,
re模块 点我回顾 Beautifulsoup模块 #安装 Beautiful Soup pip install beautifulsoup4 #安装解析器 Beautiful Soup支持Pytho ...
- python3爬虫_环境安装
一.环境安装 1.python3安装 官网:https://www.python.org/downloads/ 64 位系统可以下载 Windows x86-64 executable install ...
- from bs4 import BeautifulSoup 报错
一: BeautifulSoup的安装: 下载地址:https://www.crummy.com/software/BeautifulSoup/bs4/download/4.6/ 下载后,解压缩,然后 ...
- python框架---->BeautifulSoup的使用
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.一个人至少拥有一个梦想,有一个理由去坚强.心 ...
- 04: 使用BeautifulSoup封装的xss过滤模块
目录: 1.1 xss攻击简介 1.2 xss攻击解决方法 1.1 xss攻击简介返回顶部 1.简介 1. 跨站脚本(cross site script)为了避免与样式css混淆,所以简称为XSS. ...
随机推荐
- Jquery11 动画效果
学习要点: 1.显示.隐藏 2.滑动.卷动 3.淡入.淡出 4.自定义动画 5.列队动画方法 6.动画相关方法 7.动画全局属性 在以前很长一段时间里,网页上的各种特效还需要采用 flash 在进行. ...
- ubuntu 18.04 64bit下如何安装python开发工具jupyter
1.执行一下命令进行安装 sudo apt-get install python3-distutils wget https://bootstrap.pypa.io/get-pip.py sudo p ...
- 读取Jar中的json文件
现在操作json的jar 都是用的fastjson, 如果需要读取的json文件不在jar包里面,则可以这样获取到: String path = this.getClass().getClassLoa ...
- Mybatis中使用自定义的类型处理器处理枚举enum类型
知识点:在使用Mybatis的框架中,使用自定义的类型处理器处理枚举enum类型 应用:利用枚举类,处理字段有限,可以用状态码,代替的字段,本实例,给员工状态字段设置了一个枚举类 状态码,直接赋值给对 ...
- elasticsearch系列(三)库表理解
首先ES没有库和表的概念,只有index,type,document(详细术语可以看ES的系列一 http://www.cnblogs.com/ulysses-you/p/6736926.html), ...
- 2017 ACM/ICPC Asia Regional Shenyang Online array array array
2017-09-15 21:05:41 writer:pprp 给出一个序列问能否去掉k的数之后使得整个序列不是递增也不是递减的 先求出LIS,然后倒序求出最长递减子序列长度,然后判断去k的数后长度是 ...
- 创建node.js,blog
terminal npm init //创建项目 npm install --save express //安装 express 模块 npm install --save body-parser / ...
- Solr学习总结 Solr的安装与配置
接着前一篇,这里总结下Solr的安装与配置 1.准备 1.安装Java8 和 Tomcat9 ,java和tomcat 的安装这里不再重复.需要注意的是这两个的版本兼容问题.貌似java8 不支持,t ...
- 分布式系统中的幂等性-zookeeper与dubbo
现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者restful,既然是通信,那么就有 ...
- 使用idea引入注解@SpringBootApplication报错Cannot resolve symbol 'SpringBootApplication'
我在使用idea时,在类上使用注解@SpringBootApplication,但是一直报错. Cannot resolve symbol 'SpringBootApplication' 网络上有很多 ...