python学习之----BeautifulSoup小示例

BeautifulSoup 库最常用的对象恰好就是BeautifulSoup 对象。

from urllib.request import urlopen

from bs4 import BeautifulSoup

html = urlopen("http://www.pythonscraping.com/pages/page1.html")

bsObj = BeautifulSoup(html.read())

print(bsObj.h1)

bsObj.tagname只能获取页面中的第一个指定的标签tagname

输出结果是:

<h1>An Interesting Title</h1>

和前面例子一样,我们导入urlopen,然后调用html.read() 获取网页的HTML 内容。这

样就可以把HTML 内容传到BeautifulSoup 对象,转换成下面的结构:

? html → <html><head>...</head><body>...</body></html>

— head → <head><title>A Useful Page<title></head>

— title → <title>A Useful Page</title>

— body → <body><h1>An Int...</h1><div>Lorem ip...</div></body>

— h1 → <h1>An Interesting Title</h1>

— div → <div>Lorem Ipsum dolor...</div>

可以看出,我们从网页中提取的<h1> 标签被嵌在BeautifulSoup 对象bsObj 结构的第二层

(html → body → h1)。但是,当我们从对象里提取h1 标签的时候,可以直接调用它:

bsObj.h1

其实,下面的所有函数调用都可以产生同样的结果:

bsObj.html.body.h1

bsObj.body.h1

bsObj.html.h1

希望这个例子可以向你展示BeautifulSoup 库的强大与简单。其实,任何HTML(或

XML)文件的任意节点信息都可以被提取出来,只要目标信息的旁边或附近有标记就行。

时间: 2024-11-09 06:15:11

python学习之----BeautifulSoup小示例的相关文章

python学习之----异常处理小示例

网络是十分复杂的.网页数据格式不友好,网站服务器宕机,目标数据的标签找不到,都 是很麻烦的事情.网络数据采集最痛苦的遭遇之一,就是爬虫运行的时候你洗洗睡了,梦 想着明天一早数据就都会采集好放在数据库里,结果第二天醒来,你看到的却是一个因某 种数据格式异常导致运行错误的爬虫,在前一天当你不再盯着屏幕去睡觉之后,没过一会 儿爬虫就不再运行了.那个时候,你可能想骂发明互联网(以及那些奇葩的网络数据格 式)的人,但是你真正应该斥责的人是你自己,为什么一开始不估计可能会出现的异常! html = urlo

python学习(25) BeautifulSoup介绍和实战

BeautifulSoup是python的html解析库,处理html非常方便 BeautifulSoup 安装 pip install beautifulsoup4 BeautifulSoup 配合的解析器 # python标准库 BeautifulSoup(html,'html.parser') #lxml HTML 解析器 BeautifulSoup(html,'lxml) #html5lib BeautifulSoup(html,'html5lib') python 标准库解析器不需要第

Python 学习笔记 - 作用域小知识

Python的作用域和其他语言有所不同,他有几个小窍门来判断作用域. 1. Python里面没有块级别的作用域:只有函数级别的作用域. 比如说,下面这个例子,如果是Java或者其他语言,肯定报错name没有定义.Python里面因为不存在块级别的作用域,因此name直接就输出9了 >>> for i in range(10):     name=i print(name) ---------- 9 2. 作用域链的顺序是从内往外找,直到找不到为止 例如 >>> def 

Python学习手册之正则表达式示例--邮箱地址提取

在上一篇文章中,我们介绍了 Python 的捕获组和特殊匹配字符串,现在我们介绍 Python 的正则表达式使用示例.查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/10040430.html 邮箱地址提取为了演示正则表达式的示例用法,我们创建一个从字符串中提取电子邮箱地址的程序.假设我们有一个包含电子邮箱地址的字符串. string = "Please contact [email protected] for assistance" 我们希

python学习之jquery小练习

<html> <head> <title>html/css/js学习小结</title> <script src="jquery-1.8.3.js"></script> <style type="text/css"> /*span { display:inline; width:16%; }*/ li { display:table-cell; width:0.5%; margin-

Python学习之绕过小括号过滤后的盲注

0x00   环境搭建 sqli-labs第八关,简单修改下源代码,加入下面一行代码 $id=preg_replace('/\(|\)/', "",$id); //过滤小括号 0x01   脚本编写 1.构造payload ' union select 1,2,3 from information_schema.tables where table_schema regexp binary '^%s.*$' -- - 2.脚本如下 #coding=utf-8 import urllib

零基础Python学习路线,小白的进阶之路!

近几年Python的受欢迎程度可谓是扶摇直上,当然了学习的人也是愈来愈多.一些学习Python的小白在学习初期,总希望能够得到一份Python学习路线图,小编经过多方汇总为大家汇总了一份Python学习路线图.对于一个零基础的想学习python的朋友来说,学习方法很重要, 学习方法不对努力白费 一定要有一个正确的学习线路与方法零基础Python学习路线,小白的进阶之路!零基础Python学习路线,小白的进阶之路!必学知识:[Linux基础][Python基础语法][Python字符串][文件操作

Python学习教程:用Cython加速Python代码,快到你想不到

如果你曾经用Python编写过代码,那么等待某些代码块执行的时间可能比您希望的要长.虽然有一些方法可以提高代码的效率,但它很可能仍然比C代码慢.这主要归结为一个事实:Python是一种动态编程语言,它将许多东西移动到C在编译期间负责的运行时. 不过,如果您像我一样喜欢用Python编写代码,并且仍然希望加快代码的速度,那么您可以考虑使用Cython.虽然Cython本身是一种独立的编程语言,但是很容易将其融入到您的工作流程中,例如Jupyter Notebook.在执行时,Cython将您的Py

python学习之最简单的用户注册及登录验证小程序

文章都是从我的个人博客上粘贴过来的哦,更多内容请点击 http://www.iwangzheng.com 正如很多同学所知道的,楼主开始学习python了,前进的道路曲曲折折,有荆棘也有陷阱,从最简单的小程序写起,每天练习,将python进行到底. 有一点比较别扭的就是python的换行之后空四个空格,ruby都是两个,并且python在方法和循环语句的第一句都要加冒号 mysql> show create table user; mysql> alter table user add sal