来自 2022 年的 Python 网络爬虫补充知识,HTML+JSON+ 爬虫场景
写在前面
2022 年,知识版权的保护越来越严格,爬虫编写者的生存空间逐渐变小,但有数据的地方就会有爬虫的存在,不能采集别人的站点,我们就自力更生,后续我给大家搭建自己的站点。
本系列文章是 《Python 爬虫 120》例的阶段知识补充,原因是部分群友反馈,爬虫 120 例都是案例,来写理论夯实一下基础。
既然这样,那我们就在补充 20 篇吧,不过都是 1500 字(排除代码外)的短篇博客,希望对大家有所帮助,暂定日更 2 篇,10 天更完,然后收录到收费专栏中,现阶段免费学习,还不抓紧?
叨叨一下 HTML
成为一个爬虫编写者很简单,学 Python 一周就能操作几下,但是成为一个初级爬虫工程师,要学习的知识就非常多了
往浅了说,你前端 HTML+CSS 至少要了解一些,越熟悉,写爬虫越有利。
HTML 也是一种解释型的编程语言,学起来一点也不费劲,薄薄的一本书。
HTML 主要由标签和属性组成。
拿标签来说,一般都是成对出现的,你可以在现在的网页中执行鼠标右键,查看一下源代码,然后看一下能不能找到 <p>xxxxx</p>
这样的内容,如果找到了,恭喜你与 HTML 第一次进行了接触。
这里必须要补充一下,HTML 还有但标签,例如 <img /> 就是,注意和上述提及的 p 标签比对一下差异。
标签认识完毕,就要知道标签的属性了,因为这个也是爬虫者经常需要提取的信息,请在下述超链接标签中找出属性及属性值。
这里面的 href
就是标签属性,http://www.abcd.com/detail/88
就是属性值,参考类似的概念,继续学习,多认识标签,多找属性,要走上爬虫这条路,每天打交道的都是这些。
一般随着 HTML 的学习,会引导出 XML 的相关内容,在学习的时候,二者可以互相比对,寻找差异点,一起学习。
了解网页结构
网页就是特殊的代码被浏览器解析而成的视觉效果,尝试理解这个长句。
网页既然是代码,那就存在结构,一个网页包括如下内容
head 头部,一般用标签 <head>
表示
body 身体,一般用标签 <body>
表示
除此之外还有一个 html
标签,代表根元素,所以你见到的所有网页都能抽象成如下结构
所有的内容都是基于此进行的扩展,在复杂的页面,都能简化成上述格式,带着这个结构去学习,事半功倍。
叨叨 JSON
JSON 也是为来我们面临的一个重要知识,它与 XML 类似,都是数据格式,这样说的话,其实与 HTML 也有相似的地方,你可以继续对比学习。
JSON 是一种可以自我描述的数据交换格式,一定要注意,它有特定的格式,而正是因为这种特定的格式,使其可以游走与任何编程语言之间,和“谁”都可以合作。
JSON 使用大括号定义成对的键和值,等同于属性和值,如果有 Python 基础,类比字典和列表学习。
简单的定义格式如下所示
可以在大括号外在套一层,形成一个 JSON 对象阵列,例如下述代码
也可以将 JSON 的值设置为阵列,例如下述代码
顺着上述思路,一层层的嵌套下去,完全没有问题,套娃模式。
JSON 中的值类型可以是整数,浮点数,字符串,布尔值,数组,对象,其中注意的是布尔值,只能为 true
和 false
,注意大小写问题。
爬虫落地场景
互联网爬虫程序无处不在,搜索引擎就是最大的爬虫程序,除此之外,还有如下落地场景:
各种比价网站,商品,机票,房价,酒店等等
旅游攻略
资讯聚合站点
产品评测站点
社交舆情监控
网络营销
股票,基金
……
如何判断一个场景是否需要爬虫程序上述内容非常重要,很多时候你以为是 Python 爬虫能干的事情,结果是逆向破解或者是渗透技术,那就很尴尬,所以要学会如何判断一个场景可以用爬虫完成。
有以下 2 个条件,满足即可
人眼可以看到数据,如果人眼都看不到,那爬虫一般也爬取不到
操作可重复,人力可完成,但是很浪费时间
带着这两个条件去看待一个待解决的问题,然后在决定是否上爬虫程序。
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/f7969a94a0042e7cc7b410cb2】。文章转载请联系作者。
评论