最近一直需要接触爬虫,爬虫得到的页面数据需要进一步的处理才能够转化为我们可以使用的数据,在这里今天学习的是BeautifulSoup这个python的第三方的库,这是一款很优秀的产品,可以很好地处理html文件,网上一搜一大堆的资源,今天的学习内容主要是依据网上一篇超级详细的入门教程来进行实验的,不得不说里面的内容真的好多,一时半会也不能全部都理解,在这里先记录一下今晚的学习成果,接下来有时间继续学习。

接下来给出自己的代码,小脚本,对百度页面源码进行了操作:

#!/usr/bin/python
#-*-coding:utf-8-*-import urllib
from bs4 import BeautifulSoupdef bs_test():url = 'http://www.baidu.com'html = urllib.urlopen(url).read()print '百度页面html长度为:', len(html)#创建beautifulsoup对象soup = BeautifulSoup(html)#这个小函数可以格式化输出soup对象print soup.prettify()'''Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种:Tag、NavigableString、BeautifulSoup、Comment'''#Tag,tag就是爬取得到的html源码中的一个一个的标签,Tag,它有两个重要的属性,是 name 和 attrsprint soup.title   #输出<title>标签print len(soup.title)print soup.head    #输出<head>标签print len(soup.head)print soup.a       #输出<a>标签print len(soup.a)print type(soup.a) #输出<a>标签的类型print soup.p       #输出<p>标签print soup.p.attrs #把 p 标签的所有属性打印输出print soup.nameprint soup.head.name#NavigableStringprint soup.p.string  #用.string方法获取标签里面的内容print type(soup.p.string)   #判断类型输出#BeautifulSoup对象表示的是一个文档的全部内容print type(soup.name)    #获取soup名字的类型print soup.nameprint soup.attrs#Comment 对象是一个特殊类型的 NavigableString 对象,其实输出的内容仍然不包括注释符号print soup.aprint soup.a.stringprint type(soup.a.string)#熟悉.contents.children属性,tag 的 .content 属性可以将tag的子节点以列表的方式输出print soup.head.contents print soup.head.children#.contents 和 .children 属性仅包含tag的直接子节点,.descendants 属性可以对所有tag的子孙节点进行递归循环for child in soup.descendants:print child#.strings获取多个内容,不过需要遍历获取for string in soup.strings:print(repr(string))#.stripped_strings输出的字符串中可能包含了很多空格或空行,使用 .stripped_strings 可以去除多余空白内容for string in soup.stripped_strings:print(repr(string))# .parent 属性print soup.p.parent.name#.next_sibling .previous_sibling 属性for sibling in soup.a.next_siblings:print(repr(sibling))#.next_element .previous_element 属性,输出当前节点前一个节点或者下一个节点print soup.head.next_element#搜索文档树find_all( name , attrs , recursive , text , **kwargs )find_all() 方法搜索当前tag的所有tag子节点,并判断是否符合过滤器的条件print soup.find_all(['a','b'])  #查找所有的a标签soup.find_all("a", limit=2)    #可以限制返回的数量bs_test()

结果很大就不粘贴出来了,实际用的时候可以自己设置一个小点的html来进行实验,今天对bs4的初步学习就这些,还是刚刚入门的阶段,接下来还有很多很多需要学习的地方,欢迎有兴趣的同学一起来交流学习哈。

使用BeautifulSoup解析html入门相关推荐

  1. 爬虫入门一:BeautifulSoup解析豆瓣即将上映的电影信息

    爬虫入门一 一直很想学习一下爬虫,今天忙里偷闲看了一篇教程博客之后开始入门学习,很感谢教程作者的讲解与分享,文末附教程博客链接. BeautifulSoup解析豆瓣即将上映的电影信息 python代码 ...

  2. python安全攻防---爬虫基础---BeautifulSoup解析

    0x01 基础 使用bs4首先要安装,安装后导入 import bs4 bs对象有两个方法,一个是find,另一个是find_all find(标签名,属性值):只返回一个,返回也是bs对象,可以继续 ...

  3. python爬虫beautifulsoup_python爬虫beautifulsoup解析html方法

    用BeautifulSoup 解析html和xml字符串 实例: #!/usr/bin/python # -*- coding: UTF-8 -*- from bs4 import Beautiful ...

  4. Python3爬虫——用BeautifulSoup解析古诗文网

    我们之前已经用Xpath分析过了古诗文网,但还是感觉有点麻烦,所以今天来讲BeautifulSoup库,它可以很方便的帮我们抓取网页的数据,同样也支持lxml解析器,下面我们来详细介绍: 安装Beau ...

  5. 用 BeautifulSoup 解析器分析 RSS

    用 BeautifulSoup 解析器分析简易信息聚合RSS 运行代码 它是如何工作的 分析地址 遍历所有资讯 安装解析器 检查打印 运行代码 虽然今天传来不好的消息,京城新增数十例,但是调试程序的工 ...

  6. DoTween全解析(入门篇)

    DoTween全解析(入门篇) 概述: DoTween,Itween,这些名字作为一个Unity开发人员听起来并不陌生,它们在动画方面表现出了令人折服的能力,今天我带着大家来一起认识一下这款插件. 首 ...

  7. beautifulsoup解析

    简介 beautifulsoup和lxml都是解析器 优点:具有人性化接口 缺点:没有lxml效率高 bs4基本语法(bs4解析本地文件) html文件如下: <!DOCTYPE html> ...

  8. BeautifulSoup解析爱丽丝梦游仙境网页小练习

    BeautifulSoup解析爱丽丝梦游仙境网页小练习 html_doc = """ <html><head><title>The D ...

  9. Day08、BeautifulSoup解析库,MongoDB存储库,requests-html请求库

    一.解析库之bs4 ''' pip3 install beautifulsoup4 # 安装bs4 pip3 install lxml # 下载lxml解析器 ''' html_doc = " ...

最新文章

  1. 用python循环语句求素数_Python基础入门_3条件语句和迭代循环
  2. 分组表管理之保存分组表数据
  3. 2021.3.1 百度测试开发实习面试–百度地图一面
  4. 解析没有id的html,网络爬虫干货,还在用正则匹配html?专业的解析组件了解一下...
  5. zookeeper 伪分布式安装
  6. BigData之Spark:Spark计算引擎的简介、下载、经典案例之详细攻略
  7. Java Math的 floor,round和ceil的总结 ,java基础知识
  8. C语言第五章实验二答案,《C语言程序设计》实验二 参考答案
  9. MFC中打开文件对话框:CFileDlg
  10. html优化的基本网页布局,网站页面标题的SEO优化及布局要点
  11. 素数问题练习_HDOJ1262
  12. ActionBarSherlock学习笔记 第一篇——部署
  13. 鸟哥的linux私房菜 简书,《鸟哥的linux私房菜》学习笔记
  14. 【网络攻防技术】实验八——SQL注入实验
  15. 微信小程序上传并设置为体验版的办法(解决了没有上传按钮,体验版拉取不到数据的问题)
  16. “0x005346c4”指令引用的“0x00786000”内存,该内存不能为读
  17. C++程序设计语言学习笔记:异常处理
  18. SSM框架下打卡签到增加积分功能的实现
  19. python中0x3f_单片机中0x3f代表什么意思
  20. 细说http状态码之301,304

热门文章

  1. 人体绘画参考素材,美女跑步姿体动作不同角度参考资料
  2. 微处理器组成的微型计算机属于,以微处理器为核心组成的微型计算机属于什么...
  3. eth转入地址_ETH周报 | 资金净流入再创年内新高;以太坊2.0验证者数量增加(4.20-4.26)...
  4. 怎么把pdf转换为html,怎样能够把PDF文档转换成HTML呢
  5. 美国金融风暴席卷IT业
  6. Zend API:深入 PHP 内核
  7. RedHat EL5 x86-64上命令行安装Oracle 10g笔记
  8. HTTP隧道代理及wireshark抓包分析HTTPS过程
  9. Tableau学习7——人口金字塔、漏斗图、箱线图
  10. 系统漏洞扫描原理及工具 - 安全工具篇