爬到的网页大概分为四种内容
Ⅰ . T a g 标 签 \color{Red}Ⅰ.Tag标签 Ⅰ.Tag标签
import urllib.request,urllib.error
import urllib.parse
from bs4 import BeautifulSoup
url="http://www.douban.com/"
head={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36"}
reponse=urllib.request.Request(url=url,headers=head) #封装request对象
html=urllib.request.urlopen(reponse).read().decode('utf-8') #打开网页并解码
bs=BeautifulSoup(html,"html.parser") #创建beautifulsoup对象
print(bs.a) #打印网页中的a标签
print(bs.title) #打印网页中的title标签
如 图 所 示 , 可 见 网 页 中 的 标 签 都 可 以 通 过 . 标 签 方 式 打 印 出 来 如图所示,可见网页中的标签都可以通过.标签方式打印出来 如图所示,可见网页中的标签都可以通过.标签方式打印出来
Ⅱ . n a v i g a b e l s t r i n g ( 标 签 内 的 文 本 内 容 ) \color{orange}Ⅱ.navigabelstring(标签内的文本内容) Ⅱ.navigabelstring(标签内的文本内容)
上 面 的 方 式 是 直 接 访 问 整 个 标 签 , 下 面 的 做 法 只 访 问 其 中 的 文 字 上面的方式是直接访问整个标签,下面的做法只访问其中的文字 上面的方式是直接访问整个标签,下面的做法只访问其中的文字
import urllib.request,urllib.error
import urllib.parse
from bs4 import BeautifulSoup
url="http://www.douban.com/"
head={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36"}
reponse=urllib.request.Request(url=url,headers=head)
html=urllib.request.urlopen(reponse).read().decode('utf-8')
bs=BeautifulSoup(html,"html.parser")
print(bs.a.string)
print(bs.title.string)
当 然 , 不 止 可 以 访 问 内 容 , 标 签 属 性 也 可 以 当然,不止可以访问内容,标签属性也可以 当然,不止可以访问内容,标签属性也可以
print(bs.a.attrs)
Ⅲ . b e a u t i f u l s o u p 整 个 文 档 \color{Red}Ⅲ.beautifulsoup整个文档 Ⅲ.beautifulsoup整个文档
这 种 类 型 其 实 就 是 上 面 b s 变 量 的 类 型 , 一 个 b e a u t i f u l s o u p 对 象 这种类型其实就是上面bs变量的类型,一个beautifulsoup对象 这种类型其实就是上面bs变量的类型,一个beautifulsoup对象
Ⅳ . c o m m e n t ( 注 释 ) \color{green}Ⅳ.comment(注释) Ⅳ.comment(注释)
print(bs.a.string)
还 是 这 个 例 子 , 这 本 来 是 打 印 第 一 个 a 标 签 的 文 本 内 容 还是这个例子,这本来是打印第一个a标签的文本内容 还是这个例子,这本来是打印第一个a标签的文本内容
但 如 果 文 本 内 含 注 释 , 那 么 会 先 把 注 释 符 号 去 掉 打 印 出 来 但如果文本内含注释,那么会先把注释符号去掉打印出来 但如果文本内含注释,那么会先把注释符号去掉打印出来
这 就 是 c o m m e n t , 其 实 还 是 文 本 啦 ! 这就是comment,其实还是文本啦! 这就是comment,其实还是文本啦!