本文共 1379 字,大约阅读时间需要 4 分钟。
第四单元 beautiful soup入门先通过 “python -m pip install –upgrade pip”更新pip版本
import requestsr.text
demo = r.text
from bs4 import BeautifulSoup
soup = BeautifulSoup(demo,”html.parser”)
print(soup.prettify())
节点对象的属性 (内容)
soup—是BeautifulSoup类的一个对象 是标签树 每个标签就是一个节点
1 tag —-标签 是标签树的基本单位
2 tag.name —-标签名 tag.parent.name 外层标签名
3 tag.attrs—–标签属性 字典形式
4 tag.string—-标签非属性字符串 包括注释
5 tag.Comment—-标签注释
遍历标签树 (结构)下行遍历 children
上行遍历 parents
平行遍历 siblings
2019-12-29
基于bs4库的格式化和编码prettify()方法将每个标签后面加换行符使用print函数打印就可以自动换行
bs4库保存html文件使用utf-8格式
第五单元信息组织与提取方法
信息组织标记XML 标签
JSon 有类型键值对
YAML 无类型键值对
比较XMLi用于internet信息传递
JSON移动应用云端额节点的信息通信无注释
YAML 各类系统的配置文件有注释,易读
信息提取的一般方法for link in soup.find_all('a'):
print(link.get('href'))
link是什么玩意—就是临时变量用来指代查找列表里的对象元素
从C语言我们就知道查找的基础是遍历,
find_all(name,attrs) find检索的是字符串返回包含字符串的(信息。 例如属性值而非属性的Key find 返回标签列表nameimport re
re.compile(‘b’) 查找特定字母开头的内容 属于name参数
正则表达 式
第六单元 爬取中国大学排名tbody是整个爬取主体 是tr集合
tr是每个大学的信息主体 有三个 td
td 是每个信息主体的组成
td.string即使要提取的信息
import bs4
fillUnivList(ulist,html)
soup = BeautiutifulSoup4(html,”html.parser”)
for tr in soup.find(‘tbody’).children #遍历tbodybiaoqian中每个节点
if isinstance(tr,bs4.element.Tag): #过滤字符串节点
tds = tr(‘td’) #将tr标签里的td标签取出放入tds列表
ulist.append([tds[0].string,tds[1].string],tds[2].string) # 提取出string元素,三个一组 放入列表
中文排版问题采用中文空格填充chr(12288)tplt(模板) =“{0:^10}t{1:{3}^10}t{2:^10}”
print(tplt.format(“排名””学校名称””总分””chr(12288)”))
转载地址:http://bdyzo.baihongyu.com/