1.安装Beautiful Soup库

pip install beautifulsoup4

注:包名是beautifulsoup4,如果不加上 4,会是老版本也就是 bs3,它是为了兼容性而存在,目前已不推荐

from bs4 import BeautifulSoup
html='''<ul class="clearfix lavalamp">
<div class="lavalamp-object" id="nav"></div>
<li class="navitem-index current" ><a href="/index">首页</a></li>
<li class="lavalamp-item"><a href="/guonei">国内</a></li>
<li class="lavalamp-item"><a href="/guoji">国际</a></li>
<li class="lavalamp-item"><a href="/mil">军事</a></li>
<li class="lavalamp-item"><a href="/finance">财经</a></li>
<li class="lavalamp-item"><a href="/ent">娱乐</a></li>
<li class="lavalamp-item"><a href="/sports">体育</a></li>
<li class="lavalamp-item"><a href="/internet">互联网</a></li></ul>'''
soup=BeautifulSoup(html,"html.parser")

其中语句,soup=BeautifulSoup(html,“html.parser”)首先将html文本内容传入构造方法,得到一个文档对象Soup。第一个参数为html文本内容。html.parser为BeautifulSoup的解析器。Beautiful Soup支持Python标准库、lxml的HTML解析器、lxml的xml解析器、html5lib多种解析器。
解析器优缺点对比如下:

2.Beautiful Soup基本用法
使用“soup.标签名”的形式可以获取标签内容,如果存在多个同样的标签,返回的内容是第一个标签内容。

如果想要获取标签中的文本内容,如a标签的文本“首页”两个字。在标签后增加“.string”,就可获取标签内的文本。

也可以使用嵌套的方式获取

如果想要获取标签的属性,可以使用“标签[属性]”或“标签.get(属性)”的方式获取属性值。推荐使用“标签.get(属性)”的方式,可有效的进行异常处理。

3.Beautiful Soup 标准选择器
(1)find_all方法
find_all方法是Beautiful Soup的常用方法搜索当前标签的所有子节点,并判断是否符合过滤器的条件。
例如,获取所有的li标签,代码如下

print(soup.find_all("li"))

也可使用soup.findAll(“li”)或简写为soup(“li”)。返回的数据类型为列表,如需要获取指定的列表项目,通过增加索引获取,注意索引的切片是从0开始。

如果想通过属性来进行查找,可使用键/值对的形式来传递参数。例如查找li标签中属性class为lavalamp-item的第四个li,代码如下

这里注意,class_必须带有下划线,因为class是python的语法关键字。如去掉下划线会出现语法错误。
Beautiful Soup也可按照Id来检索,使用方式和按照Class方式查找雷同。

print(soup(id='xxx')) #xxx为具体的id值

(2)get_text方法
如果只想得到标签中包含的文本内容,可以使用get_text()方法。这个方法获取标签中的包含的所有文本内容(包括子孙节点的文本内容)并将结果返回字符串。例如:获取ul标签下所有的文本内容。

get_text()前选取的对象不能为列表等集合类型。

4.Beautiful Soup CSS选择器
Beautiful Soup支持大部分的CSS选择器,在Tag或 BeautifulSoup对象的.select()方法中传入字符串参数。字符串参数基本上遵照CSS选择器的语法格式。使用CSS选择器使用难度低,但需要注意使用的是select方法返回的是列表类型。
CSS选择器的基本内容,id选择器使用#作为前缀,类选择器使用点(.)作为前缀,元素选择器直接使用标签的名称。
例如,选择id为nav的div标签

如果需要获取标签中的文本内容除了使用.string外也可使用.text。例如获取第一个class名为lavalamp-item下的a标签文本内容,代码如下

除了获取标签内的文本外,经常需要获取标签的属性值,可使用attrs方法。例如获取当前html中第一个div的id值,代码如下

python静态网络爬虫相关推荐

  1. python网络爬虫程序技术,Python网络爬虫程序技术

    spContent=该课程是2018年广东省精品在线开放课程.课程主要以爬取学生信息.爬取城市天气预报.爬取网站图像.爬起图书网站图书.爬取商城网站商品等5个项目为依托,讲解Web.正则表达式.Bea ...

  2. 第三百三十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—深度优先与广度优先原理...

    第三百三十八节,Python分布式爬虫打造搜索引擎Scrapy精讲-深度优先与广度优先原理 网站树形结构 深度优先 是从左到右深度进行爬取的,以深度为准则从左到右的执行(递归方式实现)Scrapy默认 ...

  3. Python中爬虫框架或模块的区别

    Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...

  4. Python Scrapy爬虫框架实战应用

    通过上一节<Python Scrapy爬虫框架详解>的学习,您已经对 Scrapy 框架有了一个初步的认识,比如它的组件构成,配置文件,以及工作流程.本节将通过一个的简单爬虫项目对 Scr ...

  5. python入门爬虫知识点

    Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 当我们在浏览器中输入一个url后回车,后台会发生什么? 简单来说这段过程发生了以下四个步骤: 网络爬虫要做的,简单来说,就是实现浏览器的功 ...

  6. 爬虫书籍-Python网络爬虫权威指南OCR库 NLTK 数据清洗 BeautifulSoup Lambda表达式 Scrapy 马尔可夫模型

    Python网络爬虫权威指南 编辑推荐 适读人群 :需要抓取Web 数据的相关软件开发人员和研究人员 作为一种采集和理解网络上海量信息的方式,网页抓取技术变得越来越重要.而编写简单的自动化程序(网络爬 ...

  7. python爬虫数据提取,Python 信息提取-爬虫,爬虫提取数据, import re

    Python 信息提取-爬虫,爬虫提取数据, import re import requestsimport refrom bs4 import BeautifulSoupurl = "ht ...

  8. python网络爬虫_Python网络爬虫——爬取视频网站源视频!

    原标题:Python网络爬虫--爬取视频网站源视频! 学习前提 1.了解python基础语法 2.了解re.selenium.BeautifulSoup.os.requests等python第三方库 ...

  9. python小爬虫之天气查询

    python小爬虫之天气查询 刚开始研究爬虫,这个小程序通过抓取网页源代码,使用json解析实现了天气的查询. 1.需求分析 该博客实现了简单的天气查询功能,输入城市名称后可以查询出该城市的天气情况. ...

  10. Python分布式爬虫-elasticsearch搭建搜索引擎

    Python分布式爬虫-elasticsearch搭建搜索引擎 一.elasticsearch使用 1.elasticsearch介绍 ElasticSearch是一个基于Lucene的搜索服务器.它 ...

最新文章

  1. cgi标准面试php,PHP面试:简述CGI、FastCGI和PHP
  2. mysql内连接和外连接的区别_内连接、外连接的区别
  3. java script w3c study notes
  4. c语言常见50题 及答案(递归 循环 以及常见题目)
  5. 使用Node.js+Socket.IO搭建WebSocket实时应用
  6. python中的无参装饰器和有参装饰器
  7. exists sql用法_SQL关于IN和EXISTS的用法和区别,读完之后,大部分程序员收藏了....
  8. Android WebView 在内部打开链接,捕获错误
  9. 知网首篇被引破万论文诞生!作者是曾两次“被迫转行”的他
  10. 解决Gradle生成Eclipse支持后,发布到Tomcat丢失依赖jar包的问题
  11. Expression Template(表达式模板,ET)
  12. CentOS7 防火墙关闭
  13. arduino lora通讯_ESP8266 LoRa网关第一步:SPI总线
  14. 【转载】H264编码原理以及I帧、B帧、P帧
  15. Java_键盘输入语句
  16. 外研社php,外研社高中英语单词
  17. 2022 腾讯云 阿里云返佣政策对比
  18. PCAN-Explorer5 基本使用方法
  19. html中div背景颜色渐变(透明 对角 附赠颜色查询对照表)
  20. Android Alarm闹钟

热门文章

  1. 解析十大网络防骗术 全面防范网络欺诈
  2. 微信接口类php,【微信接口库】分享10个常用的php微信接口类
  3. 董事局主席董事长总裁首席执行官CEO总裁董事监事区别
  4. 2018BDWF大数据世界论坛主题内容公布!
  5. index()函数和match()函数联合使用案例
  6. Resin下配置JSP虚拟主机
  7. Elasticsearch索引分片的数量及大小分配策略
  8. iOS GitHub上常用第三方框架与一些参考文本总结
  9. oppo的sd卡在哪里打开_oppo手机sd卡怎么打开 oppo手机sd卡怎样打开
  10. 中国大学MOOC所有课程信息爬虫(课程ID、学校简称、课程名字、教师、学校全称、学生人数、学生人数、评价人数、平均评价)