爬虫学习——网页解析器Beautiful Soup

一.Beautiful Soup的安装与测试

官方网站:https://www.crummy.com/software/BeautifulSoup/

Beautiful Soup安装与使用文档:  https://www.crummy.com/software/BeautifulSoup/bs4/doc/

1.首先测试一下bs4模块是否已经存在,若不存在再安装即可,我用的是kali测试发现bs4模块已经存在,下面介绍如何测试与安装

新建python文档输入以下代码

1 import bs4
2 print bs4

显示一下结果即说明bs4模块已经存在,其他情况则需要安装

安装代码如下

1 sudo apt-get  install python-pip2
3 sudo pip install beautifulsoup4 

之后再进行测试即可

就会显示出来这时就说明 Beautiful Soup

安装已经完成

二、Beautiful Soup的语法

find_all:搜索出满足要求的所有节点

find:搜索出满足要求的第一个节点

二者的参数是一样的

2.按照节点名称、属性值、文字进行的搜索

3.创建Beautiful Soup对象相应的代码

 1 from bs4 import BeautifulSoup
 2
 3 #根据HTML网页字符串创建BreautifulSoup对象
 4 soup = BeautifulSoup(
 5         html_doc,                          #HTML文档字符串
 6         ‘html.parser‘                      #HTML解析器
 7         from_encoding=‘utf-8‘         #HTML文档的编码
 8         )

4.搜索节点(find_all,find)

find_all(name节点名称,attrs节点属性,string节点文字)

 1 # 方法:find_all(name,attrs,string)
 2
 3 #查找所有标签为a的节点
 4 soup.find_all(‘a‘)
 5
 6 #查找所有标签为a,链接符合/view/123.html形式的节点
 7 soup.find_all(‘a‘,href=‘/view/123.html‘)
 8 soup.find_all(‘a‘,href=re.compile(r‘/view/\d+\.htm‘))    #bs中可以在find方法中的名称和属性上使用正则表达式来匹配对应的内容
 9
10 #查找所有标签为div,class为abc,文字为python的节点
11 soup.find_all(‘div‘,class_=‘abc‘,string=‘python‘)

5.得到节点后访问节点信息


 1 #假如得到节点:<a href=‘1.html‘>python</a>
 2
 3 #获取查找到的a节点的href属性
 4 node.name
 5
 6 #获取查找到的a节点的href属性,以字典的形式访问到a节点所有的属性
 7  node[‘href‘]
 8
 9 #获取查找到的a节点的链接文字10 node.get_text()

通过以上创建bs4对象,搜索DOM树,访问节点的内容,就可以实现对整个下载好的网页

所有节点的解析和访问。下一篇博文将给一个完整的示例代码

时间: 07-06

爬虫学习——网页解析器Beautiful Soup的相关文章

【Python爬虫学习实践】基于Beautiful Soup的网站解析及数据可视化

在上一次的学习实践中,我们以Tencent职位信息网站为例,介绍了在爬虫中如何分析待解析的网站结构,同时也说明了利用Xpath和lxml解析网站的一般化流程.在本节的实践中,我们将以中国天气网为例,并基于Beautiful Soup库对其进行数据解析,最后再简单说明pyecharts数据可视化. 中国天气网网址:http://www.weather.com.cn/textFC/hb.shtml 和之前的Tencent职位信息实践一样,我们先来分析一下我们所爬取的网站的结构.在中国天气网中,我们可

[Python]HTML/XML解析器Beautiful Soup

[简介] Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库.即HTML/XMLX的解析器. 它可以很好的处理不规范标记并生成剖析树(parse tree). 它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作.它可以大大节省你的编程时间. [安装] 下载地址:点击打开链接 Linux平台安装: 如果你用的是新版的Debain或ubuntu,那么可以通过系统的软件包管理来安装: $ apt-get install Python-bs4 B

爬虫学习——网页下载器和urllib2模块

什么是网页下载器? 一.网页下载器是爬虫的核心组件 二.常用的python网页下载器有urlilib2基础模块和requests第三方插件两种 urllib2支持功能:1.支持直接url下载:2.支持向网页直接输入的数据:3.支持需要登陆网页的cookie处理:4.需要代理访问的代理处理 三.urllib2的三种下载方法 方法一.直接下载法 相应代码如下: #-*-coding:utf-8-*- #调用urllib2模块 import urllib2 #直接请求 response=urllib2

网页解析器

1.网页解析器:从网页中提取有价值的数据. 2.python网页解析的方式: 正则表达式.html.parser(python自带).Beautiful Soup(第三方).lxml(python自带). Beautiful Soup可以使用html.parser或者lxml作为解析器 3.网页解析器就是结构化解析-DOM(Document Object Model)树 4.安装Beautiful Soup以及官网地址 pip install beautifulsoup4 http://www.

爬虫学习——网页解释器简介

一.Python的网页解析器 正则表达式:将整个网页文档当作字符串,然后使用模糊匹配的方式,来提取出有价值的数据和新的url 优点:看起来比较直观 缺点:若文档比较复杂,这种解析方式会显得很麻烦 2.html.parser:此为python自带的解析器 3.lxml:第三方插件解析器,可解析html和xml网页 4.Beautiful Soup:强大的第三方插件解析器,可使用html.parser和lxml解析器 其中正则表达式采用模糊匹配的表达方式:html.parser.lxml.Beaut

python爬虫之解析库Beautiful Soup

Beautiful Soup4操作 为何要用Beautiful Soup Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式, 是一个标签的形式,来进行查找的,有点像jquery的形式.提升效率,我们在进行爬虫开发的时候,进程会用到正则来进行查找过滤的操作,纯手动会及其浪费时间. Beautiful Soup示例摘自官网 html_doc = """ <html>

Python_爬虫_BeautifulSoup网页解析库

BeautifulSoup网页解析库 from bs4 import BeautifulSoup 0.BeautifulSoup网页解析库包含 的 几个解析器 Python标准库[主要,系统自带;] 使用方法: BeautifulSoup(markup,"html.parser")[注:markup是html文档] Python的内置标准库 案例: ` from bs4 import BeautifulSoup ` soup = BeautifulSoup.(html,'html.pa

防止网页被搜索引擎爬虫和网页采集器收录的方法汇总

来源:脚本之家 http://www.jb51.net/yunying/28470.html 下面的这些方法是可以标本兼治的:1.限制IP地址单位时间的访问次数 分析:没有哪个常人一秒钟内能访问相同网站5次,除非是程序访问,而有这种喜好的,就剩下搜索引擎爬虫和讨厌的采集器了. 弊端:一刀切,这同样会阻止搜索引擎对网站的收录 适用网站:不太依靠搜索引擎的网站 采集器会怎么做:减少单位时间的访问次数,减低采集效率 2.屏蔽ip 分析:通过后台计数器,记录来访者ip和访问频率,人为分析来访记录,屏蔽可

爬虫学习——URL管理器和实现方法

url管理器一共有三种实现方法,作为个人,我们应当选择哪种实现方法呢?答案就在下面 爬虫的简单架构 一.URL管理器 实现方式:有三种 1.内存中 python中set()可以直接去除重复的元素 2.关系数据库中 比如:mysql中的urls(url,is_crawled) 建立一个urls表包含两个字段url(待爬取)和is_crawled(已爬取). 3.缓存数据库 比如:redis 本身就包含set关系型数据结构 缓存数据库具有高性能:大公司首选 个人和小公司可用python内存作为存储,