python爬虫学习——bs4
bs4 将一个复杂的html文档转化为一个复杂的树形结构,每个节点都是python对象,所有对象可以分为四种:Tag、NavigableString、BeautifulSoup、Comment
from bs4 import BeautifulSoup
f = open("./htmlDemo1.html","rb")
html = f.read().decode("utf-8")
bs = BeautifulSoup(html,"html.parser")
#print(bs.title)
# print(bs.head)
# print(bs.h1)
#print(type(bs.h1))
#1. Tag 标签及其内容 (只能拿到它所找到的第一个内容)
#print(bs.title.string)
#print(type(bs.title.string))
#2. NavigableString 标签里的内容(字符串)
# print(bs.a.attrs)
# print(bs.p.attrs) #获取标签的属性,并放在字典中
#print(type(bs))
#3. BeautifulSoup 表示整个文档
# print(bs.name)
# print(bs.attrs)
# print(bs)
# print(bs.p.string)
# print(type(bs.p.string))
#4. Comment 是一个特殊的NavigableString,输出的内容不包含注释符号
#文档的遍历
# print(bs.head.contents)
# print(bs.head.contents[1])
#文档的搜索
#1. find_all()
#(1)字符串过滤:会查找与字符串完全匹配的内容
# t_list = bs.find_all("a")
# print(t_list)
#(2)正则表达式搜索:使用search内容来匹配搜索
# import re
# t_list = bs.find_all(re.compile("a"))
# print(t_list)
#(3)方法:传入一个函数(方法),根据函数的要求来查询
# def name_is_exists(Tag):
# return Tag.has_attr("name")
#
# t_list = bs.find_all(name_is_exists)
# # print(t_list)
# for item in t_list:
# print(t_list)
#2. kwargs 参数
# t_list = bs.find_all(class_="hot")
# t_list = bs.find_all(href = "http://baidu.com")
# print(t_list)
#3. text参数
# t_list = bs.find_all(text = "hehehe")
# t_list = bs.find_all(text=["hehehe","苹果"])
# for item in t_list:
# print(item)
#4. limit参数
# t_list = bs.find_all("p",limit=3)
# print(t_list)
#css选择器
# t_list = bs.select("title") #通过标签来查找
# t_list = bs.select("head > title") #通过子标签来查找
t_list = bs.select(".hot ~ .cool")
print(t_list[0].get_text()) #通过兄弟标签来查找
# t_list = bs.select(".hot") #通过类名来查找
# t_list = bs.select("#title1") #通过id来查找
# t_list = bs.select("a[href='http://baidu.com']") #通过属性来查找
for item in t_list:
print(item)
python爬虫学习——bs4的更多相关文章
- python爬虫学习笔记(一)——环境配置(windows系统)
在进行python爬虫学习前,需要进行如下准备工作: python3+pip官方配置 1.Anaconda(推荐,包括python和相关库) [推荐地址:清华镜像] https://mirrors ...
- python爬虫学习01--电子书爬取
python爬虫学习01--电子书爬取 1.获取网页信息 import requests #导入requests库 ''' 获取网页信息 ''' if __name__ == '__main__': ...
- python爬虫学习(1) —— 从urllib说起
0. 前言 如果你从来没有接触过爬虫,刚开始的时候可能会有些许吃力 因为我不会从头到尾把所有知识点都说一遍,很多文章主要是记录我自己写的一些爬虫 所以建议先学习一下cuiqingcai大神的 Pyth ...
- python爬虫学习 —— 总目录
开篇 作为一个C党,接触python之后学习了爬虫. 和AC算法题的快感类似,从网络上爬取各种数据也很有意思. 准备写一系列文章,整理一下学习历程,也给后来者提供一点便利. 我是目录 听说你叫爬虫 - ...
- Python爬虫学习:三、爬虫的基本操作流程
本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:三.爬虫的基本操作与流程 一般我们使用Python爬虫都是希望实现一套完整的功能,如下: 1.爬虫目标数据.信息: 2.将 ...
- Python爬虫学习:四、headers和data的获取
之前在学习爬虫时,偶尔会遇到一些问题是有些网站需要登录后才能爬取内容,有的网站会识别是否是由浏览器发出的请求. 一.headers的获取 就以博客园的首页为例:http://www.cnblogs.c ...
- Python爬虫学习:二、爬虫的初步尝试
我使用的编辑器是IDLE,版本为Python2.7.11,Windows平台. 本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:二.爬虫的初步尝试 1.尝试抓取指定网页 ...
- 《Python爬虫学习系列教程》学习笔记
http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己 ...
- python爬虫学习视频资料免费送,用起来非常666
当我们浏览网页的时候,经常会看到像下面这些好看的图片,你是否想把这些图片保存下载下来. 我们最常规的做法就是通过鼠标右键,选择另存为.但有些图片点击鼠标右键的时候并没有另存为选项,或者你可以通过截图工 ...
- [转]《Python爬虫学习系列教程》
<Python爬虫学习系列教程>学习笔记 http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多. ...
随机推荐
- nodejs 图片添加水印(png, jpeg, jpg, gif)
同步发布:https://blog.jijian.link/2020-04-17/nodejs-watermark/ nodejs 作为一个脚本语言,图片处理这方面有点弱鸡,无法跟 php 这种本身集 ...
- 初识 PHP 7 源码整体框架
目录 PHP 7 语言的执行原理 编译型语言与解释型语言 PHP 7 语言的执行原理 我们常用的高级语言有很多种,比较出名的有C\C++.Python.PHP.Go.Pascal等.而这些语言根据运行 ...
- Linux下启动Oracle命令
1.进入LInux,切换到Oracle用户权限,输入数据库密码.su - oracle 1在这里插入图片描述2.输入sqlplus "/as sysdba" 1在这里插 ...
- 一个基于 .NET 开源免费的异地组网和内网穿透工具
前言 今天大姚给大家分享一个基于 .NET 开源免费的异地组网和内网穿透工具:linker. 工具介绍 linker是一个基于 .NET8 开源免费(GPL-2.0 license)的异地组网和内网穿 ...
- 请确保在应用程序配置文件的“entityFramework”节中注册了该提供程序
Exception information: Exception type: MetadataException Exception message: 指定的架构无效. 错误: Model.LW.OT ...
- ZKmall开源商城iOS 与安卓双端开发:如何平衡 B2B2C 商城的代码复用与性能
在ZKmall开源商城的iOS与安卓双端开发中,平衡B2B2C商城的代码复用与性能是一个关键考量.以下是一些建议和实践方法,以实现这一目标: 一.架构分层设计:解耦与复用 1. 分层架构模型 merm ...
- Model Context Protocol(MCP)在claude使用
定义 MCP通过统一的协议,使AI模型(如Claude.GPT等)能够动态调用外部工具(如数据库.API.本地文件等),并实现跨模型的上下文共享与协作 架构 客户端-服务器模型: MCP主机(Host ...
- 一天 Star 破万的开源项目「GitHub 热点速览」
虽然现在市面上的 AI 编程助手已经"琳琅满目",但顶流就是顶流!OpenAI 新开源的轻量级编程助手 Codex,发布不到 24 小时 Star 数就轻松破万!姗姗来迟的 Ope ...
- .net core日志NLog的使用
Nlog日志使用 视频:https://www.bilibili.com/video/BV1bv4y1a79X 参照:https://www.cnblogs.com/sheng-jie/p/17169 ...
- 炸裂!!!Deepseek接入个人知识库,回答速度飞起来,确实可以封神了
高效管理知识.快速获取信息成为提升工作效率的关键.无论是做技术的同学还是普通的上班族,在日常积累了大量的知识数据和内容.项目文档.会议记录到技术手册.业务流程,这些信息如同宝藏一般,等待着被高效利用. ...