网站首页 | 范文大全 | 常用申请书 | 党团范文 | 讲话发言 | 作文大全 | 报告叙述 | 合同范文 | 党建教育 | 入党材料 | 心得体会 |
三晋范文网
  • 作文大全
  • 高考零分作文
  • 高考满分作文
  • 中考满分作文
  • 小学生作文
  • 初中作文
  • 高中作文
  • 您的位置:三晋范文网 > 作文大全 > 高中作文 > 正文 2019-10-17 07:24:31

    【Python网络爬虫:Beautiful Soup库入门冬至日行迟】网络爬虫入门

    摘要:Beautiful Soup库安装 pip install beautifulsoup4 测试: import requestsr = requests.get()demo = r.textform bs4 import BeautifulSoup #从bs4中引入BeautifulSoup类soup = BeautifulSoup(demo, html.parser) Beautiful Soup库是解析、遍

    Beautiful Soup库安装

    pip install beautifulsoup4

    测试:

    import requestsr = requests.get("")demo = r.textform bs4 import BeautifulSoup #从bs4中引入BeautifulSoup类soup = BeautifulSoup(demo, "html.parser")

    Python网络爬虫:Beautiful Soup库入门

    Beautiful Soup库是解析、遍历、维护标签树的功能库

    Beautiful Soup库的基本元素

    Beautiful Soup库的引用

    Beautiful Soup库,也叫beautifulsoup4或bs4.

    from bs4 import BeautifulSoupsoup = BeautifulSoup(demo,"html.parser")

    Beautiful Soup类的基本元素

    Python网络爬虫:Beautiful Soup库入门

    基于bs4库的HTML内容遍历方法

    下行遍历

    Python网络爬虫:Beautiful Soup库入门

    #遍历儿子节点for child in soup.body.childrenprint(child)#遍历子孙节点for child in soup.body.descendantsprint(child)

    上行遍历

    Python网络爬虫:Beautiful Soup库入门

    soup = BeautifulSoup(demo,"html.parser")for parent in soup.a.parents: if parent is None: print(parent) else: print(parent.name)#输出结果#p#body#html#[document]

    平行遍历

    平行遍历发生在同一个父节点下的各节点间。

    下一个获取的可能是字符串类型,不一定是下一个节点。

    Python网络爬虫:Beautiful Soup库入门

    #遍历后续节点for sibling in soup.a.next_siblingsprint(sibling)#遍历前续节点for sibling in soup.a.previous_siblingsprint(sibling)

    基于bs4库的HTML格式化和编码

    格式化方法:.prettify()

    soup = BeautifulSoup(demo,"html.parser")print(soup.a.prettify())

    编码:默认utf-8

    soup = BeautifulSoup("<p中文</p","html.parser")soup.p.string#'中文'print(soup.p.prettify())#<p# 中文#</p

    3.信息组织与提取

    信息标记的三种形式

    标记后的信息可形成信息组织结构,增加了信息的维度;

    标记后的信息可用于通信、存储和展示;

    标记的结构和信息一样具有重要价值;

    标记后的信息有利于程序的理解和运用。

    XML: eXtensible Matkup Language

    最早的通用信息标记语言,可扩展性好,但繁琐。

    用于Internet上的信息交互和传递。

    <name...</name<name/<!-- --

    JSON: JAVAScript Object Notation

    信息有类型,适合程序处理(js),较XML简洁。

    用于移动应用云端和节点的信息通信,无注释。

    #有类型的键值对表示信息的标记形式"key":"value""key":["value1","value2"]"key":{"subkey":"subvalue"}

    YAMl: YAML Aint Markup Language

    信息无类型,文本信息比例最高,可读性好。

    用于各类系统的配置文件,有注释易读。

    #无类型的键值对表示信息的标记形式key : "value"key : #comment-value1-value2key :subkey : subvalue

    信息提取的一般方法

    方法一:完整解析信息的标记形式,再提取关键信息。

    XML JSON YAML

    需要标记解析器,傲风 潇湘书院,例如bs4库的标签树遍历。

    优点:信息解析准确

    缺点:提取过程繁琐,李望知声明全文如下,过程慢

    方法二:无视标记形式,直接搜索关键信息

    搜索

    对信息的文本查找函数即可。

    优点:提取过程简洁,速度较快

    缺点:提取过程准确性与信息内容相关

    融合方法:结合形式解析与搜索方法,提取关键信息

    XML JSON YAML 搜索

    需要标记解析器及文本查找函数。

    实例:提取HTML中所有URL链接

    思路:

    1、搜索到所有 标签

    2、解析 标签格式,提取href后的链接内容

    form bs4 import BeautifulSoupsoup = BeautifulSoup(demo,"html.parser")for link in soup.find_all('a'):print(link.get('href'))

    【Python网络爬虫:Beautiful Soup库入门冬至日行迟】网络爬虫入门》由(三晋范文网)整理提供,版权归原作者、原出处所有。
    Copyright © 2023 三晋范文网 All Rights Reserved. 备案号:京ICP备14001712号-1