第6章 网页解析器和BeautifulSoup第三方插件
来源:互联网 发布:java多态的体现 编辑:程序博客网 时间:2024/06/14 10:09
第一节 网页解析器简介
作用:从网页中提取有价值数据的工具
python有哪几种网页解析器?其实就是解析HTML页面
正则表达式:模糊匹配
结构化解析-DOM树:
html.parser
Beautiful Soup
lxml
第二节 BeautifulSoup模块介绍和安装
介绍:是Python第三方库,用户从HTML或xml中提取数据
官网:http://www.crummy.com/software/BeautifulSoup/
安装并测试beautifulsoup4
安装:pip install beautifulsoup4
测试:import bs4
第三节:BeautifulSoup4的语法
分成三部分:创建对象、搜索节点
创建一个BeautifulSoup对象---搜索结点 find_all、find方法
访问结点名称、属性、文字
<a href = "123.html" calss = "a"> python</a>举例
代码:
from bs4 import beautifulsoup
#根据HTML网页字符串创建BeautifulSoup对象
创建对象
soup = BeautifulSoup(
html_doc, #HTML文档字符串
'heml.parser' #HTML解析器
from_encoding = 'utf8' #HTML文档的边密码
)
搜索节点:
#方法 find_all(name,attrs,string)
#查找所有标签为a的节点
soup.find_all('a')
#查找所有标签为a,链接符合/view/123.html形式的节点
soup.find_all('a',href='/view/123.html')
soup.find_all('a',href='re.compile(r'/view/\d+/.html)')
#查找所有标签为divc,class为abc,文字为python的节点
soup.find_all('div',class_='abc',string='python')
访问结点信息:
#得到结点:<a href = '1.html'>Python</a>
#获取查找到的节点的标签名称
node.name
#获取查找到的节点的href属性
node.['href']
#获取查找到的节点的链接文字
node.get_text()
第四节 BeautifulSoup的实例测试
亲测有效:需要安装bs4第三方库
代码:
import re
from bs4 import BeautifulSoup
html_doc = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p>
<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" >Elsie</a>,
<a href="http://example.com/lacie" class="sister" >Lacie</a> and
<a href="http://example.com/tillie" class="sister" >Tillie</a>;
and they lived at the bottom of a well.</p>
<p class="story">...</p>
"""
soup = BeautifulSoup(html_doc,'html.parser',from_encoding='utf-8')
links = soup.find_all('a')
for link in links:
print link.name,link['href'],link.get_text()
link_node = soup.find('a',href = 'http://example.com/lacie')
print link_node.name, link_node['href'], link_node.get_text()
link_node = soup.find('a',href = re.compile(r'ill'))
print link_node.name, link_node['href'], link_node.get_text()
p_node = soup.find('p',class_ = 'title')
print p_node.name, p_node.get_text()
- 第6章 网页解析器和BeautifulSoup第三方插件
- 第六章 网页解析器和BeautifulSoup第三方插件
- Python爬虫----网页解析器和BeautifulSoup第三方模块
- 1.6 网页解析器beautifulsoup
- python使用HTMLParser和BeautifulSoup解析网页
- python使用HTMLParser和BeautifulSoup解析网页
- Python-Windows下安装BeautifulSoup和requests第三方模块
- python : BeautifulSoup 网页HTML 解析器
- Python 网页解析器BeautifulSoup示例使用
- BeautifulSoup解析网页信息
- beautifulsoup 解析网页内容
- BeautifulSoup解析网页
- 【爬虫】BeautifulSoup解析网页
- python第三方库BeautifulSoup
- 【beautifulsoup】python标准库解析器解析网页问题解决
- Python中第三方的用于解析HTML的库:BeautifulSoup
- [python-thirdLib] Python中第三方的用于解析HTML的库:BeautifulSoup
- 【教程】Python中第三方的用于解析HTML的库:BeautifulSoup
- 高通平台,AP和CP端相关qmi接口,AT命令,NV等porting目录
- 实现一个从底部向上弹出的菜单栏
- MongoDB 分页查询的skip方法及性能
- Android零基础入门第36节:Android系统事件的响应
- eclipse中maven项目部署到tomcat运行
- 第6章 网页解析器和BeautifulSoup第三方插件
- android.os.FileUriExposedException:file:///storage/emulated/0/1502852028434.jpg exposed beyond app t
- css 一列固定一列自适应布局-flex布局实现
- HDU_6127 Hard challenge 【思维】
- img bug 有1px的空白
- Jeecg中通过Spring_AOP+注解方式实现日志的管理
- F
- Android访问网络,使用HttpURLConnection还是HttpClient?
- CSS盒模型