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笔记的更多相关文章

  1. Python爬虫常用模块,BeautifulSoup笔记

    import urllib import urllib.request as request import re from bs4 import * #url = 'http://zh.house.q ...

  2. 商业爬虫学习笔记day7-------解析方法之bs4

    一.Beautiful Soup 1.简介 Beautiful Soup 是python的一个库,最主要的功能是从网页抓取数据.其特点如下(这三个特点正是bs强大的原因,来自官方手册) a. Beau ...

  3. 机器学习实战笔记(Python实现)-08-线性回归

    --------------------------------------------------------------------------------------- 本系列文章为<机器 ...

  4. 爬虫笔记(四)------关于BeautifulSoup4解析器与编码

    前言:本机环境配置:ubuntu 14.10,python 2.7,BeautifulSoup4 一.解析器概述 如同前几章笔记,当我们输入: soup=BeautifulSoup(response. ...

  5. python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容

    python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容 Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖 ...

  6. 笔记之Python网络数据采集

    笔记之Python网络数据采集 非原创即采集 一念清净, 烈焰成池, 一念觉醒, 方登彼岸 网络数据采集, 无非就是写一个自动化程序向网络服务器请求数据, 再对数据进行解析, 提取需要的信息 通常, ...

  7. python笔记之提取网页中的超链接

    python笔记之提取网页中的超链接 对于提取网页中的超链接,先把网页内容读取出来,然后用beautifulsoup来解析是比较方便的.但是我发现一个问题,如果直接提取a标签的href,就会包含jav ...

  8. <Python Text Processing with NLTK 2.0 Cookbook>代码笔记

    如下是<Python Text Processing with NLTK 2.0 Cookbook>一书部分章节的代码笔记. Tokenizing text into sentences ...

  9. python爬虫基础_requests和bs4

    这些都是笔记,还缺少详细整理,后续会更新. 下面这种方式,属于入门阶段,手动成分比较多. 首先安装必要组件: pip3 install requests pip3 install beautifuls ...

随机推荐

  1. asp.net的web程序适用后台线程做异步任务

    耗时的任务适用异步线程来完成. 像记录日志,发邮件,发短信,通知其他系统等.可以进行封装,让后台线程来完成,不过最好适用消息队列,redis缓存等中间件,适用定时任务来做.可以保证消息不丢失. usi ...

  2. jade继承

    代码的复用是jade非常突出的一个设计目标,jade不仅仅通过mixin来复用代码,他在文件的组织能力上也非常突出,说白了,就是继承和包涵   block定义的方式和调用的方式 block desc ...

  3. WCF之.NET Remoting通讯

    一.NET Remoting 介绍 简介 .NET Remoting与MSMQ不同,它不支持离线可得,另外只适合.NET平台的程序进行通信.它提供了一种允许对象通过应用程序域与另一个对象进行交互的框架 ...

  4. asp.net中gridview控件的一些基本使用方法

    [ 转自苏飞博客]共两篇 (1)菜单目录: GridView无代码分页排序GridView选中,编辑,取消,删除GridView正反双向排序GridView和下拉菜单DropDownList结合Gri ...

  5. 【题解】间隔排列-C++

    题目Description小Q是班长.在校运动会上,小Q班要进行队列表演.小Q要选出2*N名同学编队,每人都被编上一个号,每一个从1到N的自然数都被某2名同学佩戴,现在要求将他们排成一列,使两个编号为 ...

  6. sql时间加减

    /时间转成年月日时分秒select date_format(now(),'%Y%m%d%H%i%S')//时间转成年月日select date_format(now(),'%Y%m%d')//去年此时 ...

  7. MySQL sql join 算发

    在MySQL中,可以使用批量密钥访问(BKA)连接算法,该算法使用对连接表的索引访问和连接缓冲区. BKA算法支持:内连接,外连接和半连接操作,包括嵌套外连接. BKA的优点:更加高效的表扫描提高了连 ...

  8. 09_编写脚本,实现人机<石头,剪刀,布>游戏

    #!/bin/bashgame=(石头 剪刀 布)num=$[RANDOM%3]computer=${game[$num]}#通过随机数获取计算机的出拳#出拳的可能性保存在一个数组中,game[0], ...

  9. @PathVariable,@RequestParam, @RequestBody

    https://www.cnblogs.com/guoyinli/p/7056146.html https://www.cnblogs.com/zeroingToOne/p/8992746.html ...

  10. linux crontab 防止周期内为执行完成重复执行

    问题的背景: 我们常常需要通过crontab部署某个脚本运行某些定时任务,但在实际的过程中,一旦处理不好可能导致在同一时刻出现脚本的多个运行副本,比如crontab的调度是每5 分钟运行一次脚本,如果 ...