#BeautifulSoup的基础使用
from bs4 import BeautifulSoup #导入bs4库
html = "<p class='stylecss'><!--index page--></p><div id='divid'><ul id='ulid'><li>Menu Title</li><li>Body Content</li></ul></div><p>Ending</p>"
soup = BeautifulSoup(html ,"lxml") #创建对象
soup.p['class'] = 'newcss' #修改p标签的class
#获取p标签的class
print(soup.p.attrs)
print(soup.p.get('class'))
print(soup.p['class']) r = soup.find_all('p') #soup.find('p')显示第一个p标签及内容, .find_all显示所有的p标签及内容
r = soup.p # 同上一行find相同
r = soup.find(class_='stylecss') #获取class为stylecss的标签及内容
r = soup.find(attrs = {'class':'stylecss'}) # 获取标签的内容文本
r = soup.p.string
# cdata = CData(r)
# print(cdata)
r = soup.div.ul.li.string
# if type(soup.p.string)==Comment:
# r = soup.p.string
# print(r) r = soup.ul.contents[1] # .contents[1]获取ul列表的第二个标签及内容 # .descendants循环获取当前页面的所有标签和标签内的内容
for child in soup.descendants:
print(child) # .strings循环获取页面中显示的所有文本内容,不包括注释内容
for string in soup.strings:
print(string) p = soup.li.parent.name # .parent获取页面中li的父级标签名 # .parents递归得到当前元素的所有父级标签节点名
li = soup.li.string
for parent in li.parents:
print(parent.name) r = soup.ul.find_parent() #获取当前节点标签的父节点及内容
r = soup.li.find_parents() #获取当前节点标签的所有父节点及内容
r = soup.ul.find_all_previous() r = soup.select('p') #获取所有的p标签及内容
r = soup.select('p')[1] #获取页面中的第二个p标签及内容
r = soup.select('#divid')
r = soup.select('.stylecss')
r = soup.select('div > ul')
r = soup.select('ul > li')[1].get_text() print(r)
Python解析器  

1、Python标准库 ,使用方法:BeautifulSoup(markup, “html.parser”) ,优势:Python的内置标准库、执行速度适中、文档容错能力强

2、lxml HTML 解析器 ,使用方法:BeautifulSoup(markup, “lxml”)     ,优势:速度快、文档容错能力强,但需要安装C语言库。

3、lxml XML 解析器 ,使用方法:BeautifulSoup(markup, [“lxml”, “xml”]) 或 BeautifulSoup(markup, “xml”) ,优势:速度快、唯一支持XML的解析器,也需要安装C语言库。

4、html5lib ,使用方法:BeautifulSoup(markup, “html5lib”) ,优势:最好的容错性、以浏览器的方式解析文档、生成HTML5格式的文档,但其速度慢,不依赖外部扩展。

爬虫 ---- BeautifulSoup的基础使用的更多相关文章

  1. python爬虫(5)——BeautifulSoup & docker基础

    BeautifulSoup基础实战 安装:pip install beautifulsoup4 常用指令: from bs4 import BeautifulSoup as bs import url ...

  2. python爬虫实战:基础爬虫(使用BeautifulSoup4等)

    以前学习写爬虫程序时候,我没有系统地学习爬虫最基本的模块框架,只是实现自己的目标而写出来的,最近学习基础的爬虫,但含有完整的结构,大型爬虫含有的基础模块,此项目也有,“麻雀虽小,五脏俱全”,只是没有考 ...

  3. 爬虫beautifulsoup实践

    爬虫beautifulsoup实践: 目的:在https://unsplash.com/上爬取图片并保存到本地文件夹里.   一.观察response.首先,在Chrome浏览器里观察一下该网页的re ...

  4. 利用简易爬虫完成一道基础CTF题

    利用简易爬虫完成一道基础CTF题 声明:本文主要写给新手,侧重于表现使用爬虫爬取页面并提交数据的大致过程,所以没有对一些东西解释的很详细,比如表单,post,get方法,感兴趣的可以私信或评论给我.如 ...

  5. 爬虫入门一 基础知识 以及request

    title: 爬虫入门一 基础知识 以及request date: 2020-03-05 14:43:00 categories: python tags: crawler 爬虫整体概述,基础知识. ...

  6. python爬虫学习(一):BeautifulSoup库基础及一般元素提取方法

    最近在看爬虫相关的东西,一方面是兴趣,另一方面也是借学习爬虫练习python的使用,推荐一个很好的入门教程:中国大学MOOC的<python网络爬虫与信息提取>,是由北京理工的副教授嵩天老 ...

  7. PYTHON 爬虫笔记五:BeautifulSoup库基础用法

    知识点一:BeautifulSoup库详解及其基本使用方法 什么是BeautifulSoup 灵活又方便的网页解析库,处理高效,支持多种解析器.利用它不用编写正则表达式即可方便实现网页信息的提取库. ...

  8. Python爬虫 | Beautifulsoup解析html页面

    引入 大多数情况下的需求,我们都会指定去使用聚焦爬虫,也就是爬取页面中指定部分的数据值,而不是整个页面的数据.因此,在聚焦爬虫中使用数据解析.所以,我们的数据爬取的流程为: 指定url 基于reque ...

  9. Python爬虫----Beautiful Soup4 基础

    1. Beautiful Soup简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.pyth ...

随机推荐

  1. tcp和udp详解??

    TCP:面向连接的可靠传输 tcp规定了:传输服务必须建立连接      传输结束必须断开连接      传输数据必须保证可靠 数据的可靠性:无重复.无丢失.无失序.无差错. 建立连接(三次握手): ...

  2. 安装最新版Elasticsearch报错

    1 问题:ERROR: bootstrap checks failed max file descriptors [4096] for elasticsearch process likely too ...

  3. 动态规划(股票交易)---只能进行 k 次的股票交易

    只能进行 k 次的股票交易 188. Best Time to Buy and Sell Stock IV (Hard) 题目描述:   只能进行K次股票交易,求能获得的最大利润 思路分析:   和只 ...

  4. 数据分析画图,使用原生sql查询数据

    1.使用工具 https://www.hcharts.cn/ http://echarts.baidu.com/ 2.子表查询 id 创建时间 内容 处理者 1 2017-02-01 11:11 1 ...

  5. vue项目1-pizza点餐系统7-路由之控制滚动行为

    一.在home组件中设置具体信息,设计样式 <template> <div class="row"> <div id="home" ...

  6. 录屏状态监听之防录屏 - iOS

    继之前接到电话.短信和截屏监听需求之后,在 iOS 11.0 系统之上新增了屏幕录制的新功能玩法,所以也随之迎来了新的屏幕录制监听的需求,即防录屏功能监听 ... 通过官方文档得知 capturedD ...

  7. 09java进阶——IO

    1.File类 1.1目录及路径分隔符 package cn.jxufe.java.chapter09.demo01; import java.io.File; public class Test01 ...

  8. GUI学习之三十二—QLCDNumber学习总结

    下面我们来总结一下QLCDNumber的用法 一.描述 QLCDNumber主要用来展示LCD样式的数字,他可以显示几乎任何大小的数字,可以显示十进制,十六进制,八进制或二进制数,也可以展示一些简单的 ...

  9. 我用过的gitlab api

    1.新增tag https://docs.gitlab.com/ee/api/tags.html#list-project-repository-tags 2.获取指定项目合分支的最新一次merge ...

  10. thinkphp5 yii2 laravel5.1 框架性能压测对比图

    nginx+php7环境,opcache已经开启,每测试一个框架都重启服务器并且预热访问三次,压测工具ab.exe. laravel,thinkphp,yii都已关闭debug,该做的优化命令都搞了, ...