bs4笔记
1、网页输出乱码的解决办法
r= requests.get('https://www.baidu.com/')
r.encoding = 'gbk2312' #有可能 gbk、utf-8
soup=BeautifulSoup(r.text,"html.parser")
来源:https://blog.csdn.net/w839687571/article/details/81414433
2、打开本地html的方法
import requests
from bs4 import BeautifulSoup
import io
path = '/Users/lucax/Desktop/素材/html/123.html'
htmlfile = io.open(path, 'r', encoding='utf-8')
htmlhandle = htmlfile.read()
soup = BeautifulSoup(htmlhandle, "html.parser")
print soup
2-1、自己输入文字再输出的方法
markup = "<b><!--Hey, buddy. Want to buy a used parser?--></b>"
soup = BeautifulSoup(markup)
comment = soup.b.string #输出里面的字符
soup.prettify() #套上html框架加入markup的文案输出
3、各种拿网页元素的方法
soup.title --获取网页title
soup.title.name --获取title标签的标签文案
soup.title.string --获取title标签里面的文案 string 和 text 用法的区别 https://www.cnblogs.com/kaibindirver/p/11374669.html
soup.strings --获取网页所有文案,每个文案分别放入到数组里,但只能使用for循环展示出来
soup.stripped_strings ---(接着strings取出的内容)可以把空格和换行符去掉
soup.p --获取网页的p标签
soup.a --获取网页的a标签
soup.find_all('a') --获取网页所有的a标签
soup.find(id='link3') --获取id=link3的标签
soup.find('a',id='link2') --获取 a 标签 且 id=link2 的标签
soup.get_text() --获取网页中所有文字内容
soup.text.encode('utf-8') --获取网页中所有文字内容 另外一种写法
soup.text --获取网页中所有文字内容 另外一种写法
4、标签内属性、值、标签名操作的方法
soup.p['class'] -获取标签里面的属性对应的值
soup.p.get('class') -获取标签里面的属性对应的值,另一种写法
soup.p.attrs --获取p标签所有的属性和值(字典形式输出)
soup.a.name='新的标签' --修改网页里面a标签的标签为'新的标签'
soup.p['class']='123' --修改属性的值
del soup.p['class'] --删除属性
5、替换文案的操作方法
soup.div.find('div',id="site_nav_top").replace_with("No longer bold") --替换整个标签的方法
soup.div.find('div',id="site_nav_top").string.replace_with("No longer bold") --替换标签内文案的方法
6、把tag内的子节点已列表形式输出 .contents 属性
head_tag = soup.head
head_tag
# <head><title>The Dormouse's story</title></head>
head_tag.contents
[<title>The Dormouse's story</title>]
title_tag = head_tag.contents[0]
title_tag
# <title>The Dormouse's story</title>
title_tag.contents
# [u'The Dormouse's story']
7.获取网页所有标签内文字
soup.strings
stripped_strings 过滤空格的方法
用法
for string in soup.strings:
print string
8、搜索有特定属性的标签的方法
9\获取tr标签内多个td标签,其中一个td标签里面em标签的写法
bs4笔记的更多相关文章
- Python爬虫常用模块,BeautifulSoup笔记
import urllib import urllib.request as request import re from bs4 import * #url = 'http://zh.house.q ...
- 商业爬虫学习笔记day7-------解析方法之bs4
一.Beautiful Soup 1.简介 Beautiful Soup 是python的一个库,最主要的功能是从网页抓取数据.其特点如下(这三个特点正是bs强大的原因,来自官方手册) a. Beau ...
- 机器学习实战笔记(Python实现)-08-线性回归
--------------------------------------------------------------------------------------- 本系列文章为<机器 ...
- 爬虫笔记(四)------关于BeautifulSoup4解析器与编码
前言:本机环境配置:ubuntu 14.10,python 2.7,BeautifulSoup4 一.解析器概述 如同前几章笔记,当我们输入: soup=BeautifulSoup(response. ...
- python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容
python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容 Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖 ...
- 笔记之Python网络数据采集
笔记之Python网络数据采集 非原创即采集 一念清净, 烈焰成池, 一念觉醒, 方登彼岸 网络数据采集, 无非就是写一个自动化程序向网络服务器请求数据, 再对数据进行解析, 提取需要的信息 通常, ...
- python笔记之提取网页中的超链接
python笔记之提取网页中的超链接 对于提取网页中的超链接,先把网页内容读取出来,然后用beautifulsoup来解析是比较方便的.但是我发现一个问题,如果直接提取a标签的href,就会包含jav ...
- <Python Text Processing with NLTK 2.0 Cookbook>代码笔记
如下是<Python Text Processing with NLTK 2.0 Cookbook>一书部分章节的代码笔记. Tokenizing text into sentences ...
- python爬虫基础_requests和bs4
这些都是笔记,还缺少详细整理,后续会更新. 下面这种方式,属于入门阶段,手动成分比较多. 首先安装必要组件: pip3 install requests pip3 install beautifuls ...
随机推荐
- dbm和发射功率得对照表
原文链接:https://blog.csdn.net/nicholas_dlut/article/details/80950163dBm mW 下面是dbm和发射功率得对照表. 基本上市面上所有的无线 ...
- 论文笔记:Deformable ConvNets v2: More Deformable, Better Results
概要 MSRA在目标检测方向Beyond Regular Grid的方向上越走越远,又一篇大作推出,相比前作DCN v1在COCO上直接涨了超过5个点,简直不要太疯狂.文章的主要内容可大致归纳如下: ...
- 服务器IP与个人IP的特点
服务器IP:系统类型.开放的端口及运行的服务.C段同类机器数量.是否机房.IDC服务商 个人IP:系统类型.开放的端口及运行的服务……
- Anaconda查找源及配置清华镜像
Anaconda配置清华源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ c ...
- sklearn逻辑回归实战
目录 题目要求 ex2data1.txt处理 方案一:无多项式特征 方案二:引入多项式特征 ex2data2.txt处理 两份数据 ex2data1.txt ex2data2.txt 题目要求 根据学 ...
- 2018/7/31-zznu-oj-问题 B: N! 普拉斯 -【求大数的阶乘-ll存不下-然后取尾零的个数输出-暴力模拟】
问题 B: N! 普拉斯 时间限制: 1 Sec 内存限制: 128 MB提交: 114 解决: 35[提交] [状态] [讨论版] [命题人:admin] 题目描述 在处理阶乘时也需要借助计算器 ...
- JavaScript中的变量提升和严格模式
1.什么是变量提升 所谓的变量提升指的是:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体(作用域)的最顶部. //先声明后使用 var x; console.log(x) ...
- 003_FREERTOS任务基础知识
(一)任务状态 FreeRTOS 中的任务永远处于下面几个状态中的某一个: ● 运行态当一个任务正在运行时,那么就说这个任务处于运行态,处于运行态的任务就是当前正在使用处理器的任务.如果使用的是单核处 ...
- How to change the default browser to debug with in Visual Studio 2008?
http://stackoverflow.com/questions/297298/how-to-change-the-default-browser-to-debug-with-in-visual- ...
- ckeditor不能粘贴word的问题如何解决
自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了.一般情况下我们将Word内容粘贴到Web编辑器(富文本编辑器) ...

