郓城网站建设价格,滨海专业做网站的公司,中科 网站会员注册系统建设,网站更换标题Beautiful Soup 是用Python写的一个HTML/XML的解析器#xff0c;它可以很好的处理不规范标记并生成剖析树(parse tree)。 它提供简单又常用的导航#xff08;navigating#xff09;#xff0c;搜索以及修改剖析树的操作。它可以大大节省你的编程时间。安装 Beautiful Soup… Beautiful Soup 是用Python写的一个HTML/XML的解析器它可以很好的处理不规范标记并生成剖析树(parse tree)。 它提供简单又常用的导航navigating搜索以及修改剖析树的操作。它可以大大节省你的编程时间。安装 Beautiful Soup 如果你安装了python3,可以在windows的命令行CMD运行下面命令 pip3 install BeautifulSoup4 安装解析器 Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,其中一个是 lxml .在windows的命令行CMD可以选择下列方法来安装lxml pip3 install lxml 下表列出了主要的解析器,以及它们的优缺点: 解析器使用方法优势劣势Python标准库BeautifulSoup(markup, html.parser) Python的内置标准库执行速度适中文档容错能力强 Python 2.7.3 or 3.2.2)前 的版本中文档容错能力差lxml HTML 解析器BeautifulSoup(markup, lxml) 速度快文档容错能力强 需要安装C语言库lxml XML 解析器 BeautifulSoup(markup, [lxml, xml]) BeautifulSoup(markup, xml) 速度快唯一支持XML的解析器 需要安装C语言库html5libBeautifulSoup(markup, html5lib) 最好的容错性以浏览器的方式解析文档生成HTML5格式的文档 速度慢不依赖外部扩展具体可以参考文档https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/#id15 推荐使用lxml作为解析器,因为效率更高. 在Python2.7.3之前的版本和Python3中3.2.2之前的版本,必须安装lxml或html5lib, 因为那些Python版本的标准库中内置的HTML解析方法不够稳定. 使用BeautifulSoup及解析器lxml解析源代码,能够得到一个 BeautifulSoup 的对象,并能按照标准的格式的结构输出。看一下下面的例子 url requests.get(http://www.xingmeng365.com/articles.asp?id7)
url.encoding gb2312
html_doc url.text
soup BeautifulSoup(html_doc,lxml) 其中urlrequests.get(链接)通过request库获取源代码然后通过encoding gb2312转换格式 html_doc url.text将源代码转换为文件然后通过BeautifulSoup及解析器lxml得到一个 BeautifulSoup 的对象,并能按照标准的格式的结构输出。 Beautiful Soup三种常见用法
1) 搜索tag print(soup.head) #获取头部
print(soup.title) #获取标题
print(soup.h1) #获取h1标签
print(soup.title,soup.h1) #获取title和h1 find(list) 打印出来的内容
title性感女神王雨纯黑色内衣写真妩媚迷人(1/13)_性感美女_星梦365/title h1性感女神王雨纯黑色内衣写真妩媚迷人/h1
2) 搜索属性(attrs) print(soup.find(idlink3)) #获取id为link3的标签 3) 搜索文字text: print(soup.title.getText()) #获取title标签的文字内容
print(soup.h1.get_text()) #获取第h1标签的文字内容
print(soup.p.get_text()) #获取p标签的文字内容
print(soup.span.get_text()) #获取span标签的文字内容 打印出来的内容
性感女神王雨纯黑色内衣写真妩媚迷人(1/13)_性感美女_星梦365 性感女神王雨纯黑色内衣写真妩媚迷人 getText()或者get_text()都是获取属性的文字内容。 4循环获取内容 #循环获取所有页面链接
for link in soup.find_all(a):print(link.get(href))#循环获取页面所有图片链接
for link in soup.find_all(img):print(link.get(src))#循环获取页面所有符合要求的图片链接
for link in soup.find_all(img):if /upload/image in link.get(src):print(link.get(src))
articles.asp?id7mm2 articles.asp?id790 articles.asp?id7mm2 articles.asp?id371 articles.asp?id420 articles.asp?id278 articles.asp?id391 articles.asp?id102 /images/logo.png /upload/image/20170811/20170811210545754575.jpg /upload/Smallpic/20179232057110.jpg /upload/Smallpic/20171061957350.jpg /upload/Smallpic/2017962036430.jpg /upload/Smallpic/201792805460.jpg /upload/Smallpic/20178161949370.jpg
/upload/image/20170811/20170811210545754575.jpg
以上就是我们常用的一些方法具体更复杂的方法可以参考官方文档。