网页解析器

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.crummy.com/software/BeautifulSoup/bs4/doc/

举例说明:

<a href=‘123.html‘ class=‘article_link‘>Python </a>
节点名称:a
节点属性:href=‘123.html‘和class=‘article_link‘
节点内容:Python

代码实现:

#-*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import re
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" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>

<p class="story">...</p>
"""
# 根据HTML网页字符串创建BeautifulSoup
# HTML文档字符串 #HTML解析器 #HTML文档的编码
soup = BeautifulSoup(html_doc,‘html.parser‘,from_encoding=‘utf-8‘)

print (‘-------获取所有的连接------------‘)
links = soup.find_all(‘a‘)
for link in links:
    print link.name, link[‘href‘], link.get_text()

print (‘-------获取lacie的连接------------‘)
link_nodes = soup.find_all(‘a‘, href=‘http://example.com/lacie‘)
for link_node in link_nodes:
    print link_node.name, link_node[‘href‘], link_node.get_text()

print (‘---------正则匹配----------‘)
link_nodes = soup.find_all(‘a‘, href=re.compile(r"ill"))
for link_node in link_nodes:
    print link_node.name, link_node[‘href‘], link_node.get_text()

print (‘---------获取P段落文字----------‘)

p_nodes = soup.find_all(‘p‘, class_="title")
# class_是为避免与关键字冲突
for p_node in p_nodes:
    print p_node.name, p_node.get_text()

时间: 2024-10-18 08:18:13

网页解析器的相关文章

爬虫学习——网页解析器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

AFN解析器里的坑

AFN框架是用来用来发送网络请求的,它的好处是可以自动给你解析JSON数据,还可以发送带参数的请求AFN框架还可以监测当前的网络状态,还支持HTTPS请求,分别对用的类为AFNetworkReachabilityManager,AFSecurityPolicy 虽然AFN可以发送请求,但是里面有许多坑,  1.你想要得到正确的JSON数据必须要:网络请求成功,服务器返回的必须是JSON 数据,自己(AFN)还能够解析,也就是说你发送的请求,返回的数据类型必须是JSON数据,而且必须以JSON结尾

Spring MVC-控制器(Controller)-参数方法名称解析器(Parameter Method Name Resolver )示例(转载实践)

以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_parametermethodnameresolver.htm 说明:示例基于Spring MVC 4.1.6. 以下示例显示如何使用Spring Web MVC框架使用多操作控制器的参数方法名称解析器方法.MultiActionController类有助于分别在单个控制器中将多个URL与其方法映射. package com.tutorialspoint; import java

实现高性能Java解析器

备注: 本篇文章是关于先前相同主题文章的最新版本.先前文章主要介绍创建高性能解析器的一些要点,但它吸收了读者的一部分批评建议.原来的文章进行了全面修订,并补充了相对完整的代码.我们希望你喜欢本次更新. 如果你没有指定数据或语言标准的或开源的Java解析器, 可能经常要用Java实现你自己的数据或语言解析器.或者,可能有很多解析器可选,但是要么太慢,要么太耗内存,或者没有你需要的特定功能.或者开源解析器存在缺陷,或者开源解析器项目被取消诸如此类原因.上述原因都没有你将需要实现你自己的解析器的事实<

Atitit.html解析器的选型&amp;#160;jsoup&amp;#160;nsoup&amp;#160;,java&amp;#160;c#&amp;#160;.net&amp;#160;版本号

Atitit.html解析器的选型 jsoup nsoup ,java c# .net 版本号 1. 框架选型的要求 1 1.1. 文档多 1 1.2. 跨平台 1 2. html解析器特性: 1 2.1. jQuery 风格的 CSS 选择器 1 2.2. 操作 HTML 文档. 1 3. 浏览器解析html的原理以及防止乱码 2 4. 把meta标签放在head区域的最前面 4 5. HTML解析器 4 6. 參考 8 6.1.1. atitit. java?jsoup?html table

XML DOM 解析器

大多数浏览器都内建了供读取和操作 XML 的 XML 解析器. 解析器把 XML 转换为 JavaScript 可存取的对象(XML DOM). XML 解析器 XML DOM 包含了遍历 XML 树,访问.插入及删除节点的方法(函数). 然而,在访问和操作 XML 文档之前,它必须加载到 XML DOM 对象. XML 解析器读取 XML,并把它转换为 XML DOM 对象,这样才可以使用 JavaScript 访问它. 大多数浏览器有一个内建的 XML 解析器. 加载 XML 文档 下面的

Python 文本解析器

Python 文本解析器 一.课程介绍 本课程讲解一个使用 Python 来解析纯文本生成一个 HTML 页面的小程序. 二.相关技术 Python:一种面向对象.解释型计算机程序设计语言,用它可以做 Web 开发.图形处理.文本处理和数学处理等等. HTML:超文本标记语言,主要用来实现网页. 三.项目截图 纯文本文件: Welcome to ShiYanLou ShiYanLou is the first experiment with IT as the core of online ed

爬虫笔记(四)------关于BeautifulSoup4解析器与编码

前言:本机环境配置:ubuntu 14.10,python 2.7,BeautifulSoup4 一.解析器概述 如同前几章笔记,当我们输入: soup=BeautifulSoup(response.body) 对网页进行析取时,并未规定解析器,此时使用的是python内部默认的解析器“html.parser”. 解析器是什么呢? BeautifulSoup做的工作就是对html标签进行解释和分类,不同的解析器对相同html标签会做出不同解释. 举个官方文档上的例子: BeautifulSoup

Spring MVC-视图解析器(View Resolverr)-多重解析器(Multiple Resolver)示例(转载实践)

以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_multiple_resolver_mapping.htm 说明:示例基于Spring MVC 4.1.6. 如果要在spring mvc应用程序中使用多个视图解析器,则可以使用order属性设置优先级顺序.以下示例显示了如何在Spring Web MVC框架中使用ResourceBundleViewResolver和InternalResourceViewResolver. T