【月更第11篇】来自2022年的Python 网络爬虫补充知识,HTML+JSON+爬虫场景

举报
梦想橡皮擦 发表于 2022/03/23 09:42:01 2022/03/23
【摘要】 写在前面2022年,知识版权的保护越来越严格,爬虫编写者的生存空间逐渐变小,但有数据的地方就会有爬虫的存在,不能采集别人的站点,我们就自力更生,后续我给大家搭建自己的站点。本系列文章是 《Python爬虫120》例的阶段知识补充,原因是部分群友反馈,爬虫120例都是案例,来写理论夯实一下基础。既然这样,那我们就在补充20篇吧,不过都是1500字(排除代码外)的短篇博客,希望对大家有所帮助,...

写在前面

2022年,知识版权的保护越来越严格,爬虫编写者的生存空间逐渐变小,但有数据的地方就会有爬虫的存在,不能采集别人的站点,我们就自力更生,后续我给大家搭建自己的站点。

本系列文章是 《Python爬虫120》例的阶段知识补充,原因是部分群友反馈,爬虫120例都是案例,来写理论夯实一下基础。

既然这样,那我们就在补充20篇吧,不过都是1500字(排除代码外)的短篇博客,希望对大家有所帮助,暂定日更2篇,10天更完,然后收录到收费专栏中,现阶段免费学习,还不抓紧?

叨叨一下HTML

成为一个爬虫编写者很简单,学Python 一周就能操作几下,但是成为一个初级爬虫工程师,要学习的知识就非常多了

往浅了说,你前端HTML+CSS至少要了解一些,越熟悉,写爬虫越有利。

HTML 也是一种解释型的编程语言,学起来一点也不费劲,薄薄的一本书。

HTML 主要由标签和属性组成。

拿标签来说,一般都是成对出现的,你可以在现在的网页中执行鼠标右键,查看一下源代码,然后看一下能不能找到 <p>xxxxx</p> 这样的内容,如果找到了,恭喜你与HTML第一次进行了接触。

这里必须要补充一下,HTML还有但标签,例如 就是,注意和上述提及的 p 标签比对一下差异。

标签认识完毕,就要知道标签的属性了,因为这个也是爬虫者经常需要提取的信息,请在下述超链接标签中找出属性及属性值。

<a href="http://www.abcd.com/detail/88">我是一个超链接,文章地址</a>

这里面的 href 就是标签属性,http://www.abcd.com/detail/88 就是属性值,参考类似的概念,继续学习,多认识标签,多找属性,要走上爬虫这条路,每天打交道的都是这些。

一般随着 HTML 的学习,会引导出 XML 的相关内容,在学习的时候,二者可以互相比对,寻找差异点,一起学习。

了解网页结构

网页就是特殊的代码被浏览器解析而成的视觉效果,尝试理解这个长句。

网页既然是代码,那就存在结构,一个网页包括如下内容

head 头部,一般用标签 <head> 表示

body 身体,一般用标签 <body> 表示

除此之外还有一个 html 标签,代表根元素,所以你见到的所有网页都能抽象成如下结构

<html>
<head></head>
<body></body>
</html>

所有的内容都是基于此进行的扩展,在复杂的页面,都能简化成上述格式,带着这个结构去学习,事半功倍。

叨叨JSON

JSON 也是为来我们面临的一个重要知识,它与 XML 类似,都是数据格式,这样说的话,其实与 HTML 也有相似的地方,你可以继续对比学习。

JSON 是一种可以自我描述的数据交换格式,一定要注意,它有特定的格式,而正是因为这种特定的格式,使其可以游走与任何编程语言之间,和“谁”都可以合作。

JSON 使用大括号定义成对的键和值,等同于属性和值,如果有 Python 基础,类比字典和列表学习。

简单的定义格式如下所示

{
 "key1":"value1",
 "key2":"value2",
 "key3":"value3"
}

可以在大括号外在套一层,形成一个 JSON 对象阵列,例如下述代码

[
 {
  "key1":"value1",
  "key2":"value2",
  "key3":"value3"
 }
 {
  "key1":"value1",
  "key2":"value2",
  "key3":"value3"
 }
]

也可以将JSON的值设置为阵列,例如下述代码

{
 "key1":[1,2,3],
 "key2":"value2",
 "key3":"value3"
}

顺着上述思路,一层层的嵌套下去,完全没有问题,套娃模式。

JSON 中的值类型可以是整数,浮点数,字符串,布尔值,数组,对象,其中注意的是布尔值,只能为 truefalse,注意大小写问题。

爬虫落地场景

互联网爬虫程序无处不在,搜索引擎就是最大的爬虫程序,除此之外,还有如下落地场景:

  • 各种比价网站,商品,机票,房价,酒店等等
  • 旅游攻略
  • 资讯聚合站点
  • 产品评测站点
  • 社交舆情监控
  • 网络营销
  • 股票,基金
  • ……

如何判断一个场景是否需要爬虫程序
上述内容非常重要,很多时候你以为是Python爬虫能干的事情,结果是逆向破解或者是渗透技术,那就很尴尬,所以要学会如何判断一个场景可以用爬虫完成。

有以下2个条件,满足即可

  1. 人眼可以看到数据,如果人眼都看不到,那爬虫一般也爬取不到
  2. 操作可重复,人力可完成,但是很浪费时间

带着这两个条件去看待一个待解决的问题,然后在决定是否上爬虫程序。

今天的补充知识编写完毕,希望多多少少能帮助到这个阶段的你。
感兴趣的化 订阅一下 《Python爬虫120》

橡皮擦的第 591 篇原创博客。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。