Python爬虫学习日志(5)

信息的标记与提取

1.HTML的信息标记

  • HTML(Hyper Text Markup Language)是WWW(World Wide Web)的信息组织方式。
  • 超文本可以将声音、图像和视频嵌入的文本中。
  • HTML通过预定义的<>…</>标签形式组织不同类型的信息。
  1. XML(eXtensible Makeup Language)

在这里插入图片描述

  1. JSON(JavaScript Object Notation)

在这里插入图片描述

  1. YAML(YAML Ain’t Makeup Language)
  • 无类型的键值对,无双引号,#表示注释,-表示并列的值信息,通过缩进表示嵌套关系。
    在这里插入图片描述

2.信息提取的一般方法

  1. 完整解析信息的标记形式,再提取关键信息
  • XML JSON YAML
    需要标记解析器 例如:bs4库的标签树遍历。
  • 优点:信息解析准确。
  • 缺点:提取过程繁琐,速度慢。
  1. 无视标记形式,直接搜索关键信息
  • 搜索
    对信息的文本查找函数即可。
  • 优点:提取过程简洁,速度较快。
  • 缺点:提取结果准确性与信息内容相关。
  1. 融合方法:结合形式解析与搜索方法,提取关键信息。
    XML JSON YAML 搜索
    需要标记解析器及文本查找函数。

3.基于bs4库的HTML内容查找方法

  1. find_all函数
    在这里插入图片描述
  • find_all函数非常常用,可以用其简写形式。
    (…) 等价于find_all(…)
    即有:soup(…) 等价于soupfind_all(…)
import requests
from bs4 import BeautifulSoup
import re
r = requests.get("http://python123.io/ws/demo.html")
demo = r.text
soup = BeautifulSoup(demo, "html.parser")
print(soup.find_all('a'))#标签名称name
print("--------------")
print(soup.find_all('a', 'b'))
print("--------------")
print(soup.find_all('p', 'course'))#标签属性值attrs
print("--------------")
print(soup.find_all('a', recursive= False))#子孙检索recursive
print("--------------")
print(soup.find_all(string = "Basic Python"))#字符串string
print("--------------")
print(soup.find_all(string= re.compile("python")))#正则表达式
[<a class="py1" href="http://www.icourse163.org/course/BIT-268001" id="link1">Basic Python</a>, <a class="py2" href="http://www.icourse163.org/course/BIT-1001870001" id="link2">Advanced Python</a>]
--------------
[]
--------------
[<p class="course">Python is a wonderful general-purpose programming language. You can learn Python from novice to professional by tracking the following courses:
<a class="py1" href="http://www.icourse163.org/course/BIT-268001" id="link1">Basic Python</a> and <a class="py2" href="http://www.icourse163.org/course/BIT-1001870001" id="link2">Advanced Python</a>.</p>]
--------------
[]
--------------
['Basic Python']
--------------
['This is a python demo page', 'The demo python introduces several python courses.']
  1. 其他函数
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值