网站内容抓取(爬取网页时如何找到对我们有效的信息呢?)
优采云 发布时间: 2022-01-29 22:13网站内容抓取(爬取网页时如何找到对我们有效的信息呢?)
之前我提到了网络爬虫的风险,保护个人数据/信息的重要性。
当然,小编不是来要求大家爬取个人信息的,但正因为有这种可能,所以越要保护好自己的隐私。
那么,当我们抓取网络时,我们如何找到对我们有用的信息呢?也就是说,找到之后,我们如何通过Python打印出一系列信息呢?
1.为什么要提取信息?
首先,Python爬虫爬取网页时,无法打印出整个网页信息。至于为什么,看过网页源码的就知道了,按F12或者右键查看源码(或者查一下),可以看到一个网页收录很多信息,比如小编个人博客源码:
这包括前端HTML或其他语言代码,处理起来会很麻烦。我想以前没有人这样做过。
在提取信息之前,我们先来了解一下信息的标记,就像我们家里有很多物品一样。为了让别人知道它的功能,我们用小纸片将各种物品的功能写在小纸片上,贴在物品上。.
那么信息标注的好处也是显而易见的:
To: 网页中 HTML 的信息标签: H: hyper
T:文字
M:标记
L:语言
HTML是www的信息组织形式:可以将声音、图像、视频等超文本信息嵌入到文本中。
HTML 以预定义的 ... 标签的形式组织不同类型的信息。
2.三个信息标签
国际公认的三种信息标记:XML、JSON、YAML
XML
XML:XML(可扩展标记语言):Extensible Markup Language,一种与HTML非常接近的标准语言,使用基于标签的方法来构造和表达信息。喜欢:
<img scr="china.jpg" size="10">...</img> #img为名称,即Name
scr="china.jpg" size="10"是属性Attribute
为注释
例子:
tian
湖南
长沙
Com
HTML是在XML之前出现的,可以说XML是在HTML的基础上发展起来的。
JSON
JSON:JavsScript 对象表示法
由类型化的键值对构成,例如:key:value
示例:“名称”:“北京”“名称”:[“北京”,“湖南”]
当我们嵌套使用:"name":{"newname":"Beijing","oldname":"Hunan"}
例子:
{
"first Name":"tian",
"addres":{
"streeAddr":"湖南"
"city":"长沙
},
"prof":["Com","ser"]
}
YAML
YAML:另一种标记语言
无类型键值对 key:value
如:姓名:北京
嵌套时,使用缩进
特点: | 表达整块数据#表达注释-表达平行关系
例子:
first Name:tian
addres:
streeAddr:湖南
city:长沙
prof:
-Com
-ser
3.三种标签形式的比较
信息标记形式的简单比较:
三种主流标签形式的比较和用处:
4.信息提取的三种方法
1.完整解析信息的标记形式,然后提取关键信息(解析)
需要一个标签解析器,例如:bs4 库的标签树遍历。
优点:准确的信息分析。
缺点:提取过程繁琐,速度慢。
2.忽略标记形式,直接搜索关键信息。(搜索)
搜索:向信息发送文本搜索功能。
优点:提取过程简单、快速。
缺点:提取结果的准确性与直接的信息内容有关。
3.融合方法(搜索+解析):
结合形式解析和搜索方法来提取关键信息。
需要分词器解析器以及文本查找功能。
结合以上两种方法是最好的选择。
Python爬虫系列,待续……