免费购物网站源码,做网站购买域名,深圳网站设计招聘网,四川省住房和城乡建设厅官网电话本篇将会介绍beutifulsoup4模块#xff0c;可以用于网络爬虫、解析HTML和XML#xff0c;对于没有接触过前端#xff0c;不了解HTML是如何工作的#xff0c;需要先解释一下什么事HTML。
1. HTML
网页中的各种布局等的背后都是非常简单的纯文本格式#xff0c;那种格式称为…本篇将会介绍beutifulsoup4模块可以用于网络爬虫、解析HTML和XML对于没有接触过前端不了解HTML是如何工作的需要先解释一下什么事HTML。
1. HTML
网页中的各种布局等的背后都是非常简单的纯文本格式那种格式称为HTML。 关于HTML不用刻意的去学习所谓的HTML就是一堆括起来的符合或单词不同的单词就是标签其对应了不同的作用。
如果在网络上进行通信获取网页实际上不会得到我们打开的网页的界面得到的就是html的代码而我们关心的可能就是HTML中的一部内容就需要对HTTML也就是字符串进行解析找出我们需要的部分。通过python的字符串来进行处理也是可行的但是考虑到处理的效率也有相应的开发的模块。
2. 安装bs4
pip install beutifulsoup4官网文档(中文版): https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/
3. 使用BeautifulSoup解析HTML实例
使用的HTML代码如下来自于官方文档中的范例a、p均为标签
html_doc
htmlheadtitleThe Dormouses story/title/head
body
p classtitlebThe Dormouses story/b/pp classstoryOnce upon a time there were three little sisters; and their names were
a hrefhttp://example.com/elsie classsister idlink1Elsie/a,
a hrefhttp://example.com/lacie classsister idlink2Lacie/a and
a hrefhttp://example.com/tillie classsister idlink3Tillie/a;
and they lived at the bottom of a well./pp classstory.../p将其拷贝到一个txt文件改后缀为html利用浏览器打开就是一个网页如下
bs4中提供了BeautifulSoup的方法它可以将html字符串转化为一个soup对象。soup对象中提供了各种属性方法对应了htm文档使得我们可以很方便地提取相关信息
以下演示如何进行安装、导入模块、进行HTML的缩进美化
C:\Users\pip install beautifulsoup4
C:\Users\ipython
In [1]: from bs4 import BeautifulSoup
In [2]: html_doc ...: htmlheadtitleThe Dormouses story/title/head...: body...: p classtitlebThe Dormouses story/b/p...:...: p classstoryOnce upon a time there were three little sisters; and their names were...: a hrefhttp://example.com/elsie classsister idlink1Elsie/a,...: a hrefhttp://example.com/lacie classsister idlink2Lacie/a and...: a hrefhttp://example.com/tillie classsister idlink3Tillie/a;...: and they lived at the bottom of a well./p...:...: p classstory.../p...: In [3]: soup BeautifulSoup(html_doc, html.parser) #转变为soup对象In [4]: print(soup.prettify()) #把原有HTML源码进行缩进美化
htmlheadtitleThe Dormouses story/title/headbodyp classtitlebThe Dormouses story/b/pp classstoryOnce upon a time there were three little sisters; and their names werea classsister hrefhttp://example.com/elsie idlink1Elsie/a,a classsister hrefhttp://example.com/lacie idlink2Lacie/aanda classsister hrefhttp://example.com/tillie idlink3Tillie/a;
and they lived at the bottom of a well./pp classstory.../p/body
/html
构造得到的soup对象中提供了各种操作的方法。
find_all找到所有的标签返回一个listlist中的每个元素是标签对象。
In [5]: soup.find_all(a)
Out[5]:
[a classsister hrefhttp://example.com/elsie idlink1Elsie/a,a classsister hrefhttp://example.com/lacie idlink2Lacie/a,a classsister hrefhttp://example.com/tillie idlink3Tillie/a]In [6]: for i in soup.find_all(a):...: print(i)...:
a classsister hrefhttp://example.com/elsie idlink1Elsie/a
a classsister hrefhttp://example.com/lacie idlink2Lacie/a
a classsister hrefhttp://example.com/tillie idlink3Tillie/aIn [7]: mylist soup.find_all(a)In [8]: tag0 mylist[0]In [9]: tag0
Out[9]: a classsister hrefhttp://example.com/elsie idlink1Elsie/aIn [10]: tag0[href] #标签类似dict的封装得到href的value
Out[10]: http://example.com/elsie
In [11]: for item in mylist:...: print(item[href])...:
http://example.com/elsie
http://example.com/lacie
http://example.com/tillie
4.学习视频地址使用python解析网页HTML