【第二周】BeautifulSoup库入门——python爬虫慕课笔记

文章目录

  • 第四单元 BeautifulSoup库入门
    • 基本使用
    • 基本元素
    • html格式和内容遍历方法
  • 第五单元 信息组织与提取方法
    • 信息标记的三种形式
    • 信息提取的一般方法
    • 基于bs4库的html内容查找方法
  • 第六单元 大学排名实例

第四单元 BeautifulSoup库入门

基本使用

优秀的第三方库,用它来解析html信息
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第1张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第2张图片
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第3张图片

【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第4张图片
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第5张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第6张图片

基本元素

【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第7张图片
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第8张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第9张图片
prettify方法:为标签和内容增加换行符,方便print出来阅读
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第10张图片

html格式和内容遍历方法

树型结构
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第11张图片
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第12张图片
这些方法返回的是一个列表,可以用列表的方式对信息进行检索
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第13张图片
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第14张图片
第二个是descendants,PPT应该是写错了

【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第15张图片
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第16张图片
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第17张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第18张图片
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第19张图片
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第20张图片
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第21张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第22张图片
总结:
在这里插入图片描述
后面的是迭代类型,只能用在for in结构中
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第23张图片

第五单元 信息组织与提取方法

信息标记的三种形式

【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第24张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第25张图片信息标记的三种形式:XML,JSON,YAML
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第26张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第27张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第28张图片
键值对
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第29张图片
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第30张图片
用缩进表示所属关系
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第31张图片
例子:
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第32张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第33张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第34张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第35张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第36张图片
json实用于程序直接访问接口并进行处理

信息提取的一般方法

【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第37张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第38张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第39张图片
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第40张图片

基于bs4库的html内容查找方法

【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第41张图片
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第42张图片
对以上代码说明:

  • 若name是True将显示soup中所有标签信息
  • 使用正则表达式re打印出b开头的标签
  • 显示p标签中含course字符串内容的信息
  • 返回属性于中id等于link1的标签元素

【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第43张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第44张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第45张图片
【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第46张图片【第二周】BeautifulSoup库入门——python爬虫慕课笔记_第47张图片

第六单元 大学排名实例

import bs4
import requests
import re
from bs4 import BeautifulSoup
def getHTMLText(url):
    try:
        r = requests.get(url,timeout = 30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return ""
def fillUnivList(ulist,html):#提取关键数据,核心部分
    soup =  BeautifulSoup(html,'html.parser')
    for tr in soup.find('tbody').children:#tr是一所大学所包含的信息
        if isinstance(tr,bs4.element.Tag):
            tds = tr('td')#把所有的td标签存为tds列表类型
            ulist.append(【tds[0.string,tds[1].string,tds[3].string])#加上字

    pass
def printUnivList(ulist,num):
    print("{:^10}\t{:^6}\t{:^15}".format("排名","学校名称","总分"))
    for i in range(num):
        u = ulist[i]
        print("{:^10}\t{:^6}\t{:^15}".format(u[0],u[1],u[2]))
    print("Suc"+str(num))
def main():
    uinfo = []
    url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html'
    html = getHTMLText(url)
    fillUnivList(uinfo,html)
    printUnivList(uinfo,20)#20 univers
main()

你可能感兴趣的:(Python爬虫慕课,爬虫,python)