写点什么

来自 2022 年的 Python 网络爬虫补充知识,HTML+JSON+ 爬虫场景

作者:梦想橡皮擦
  • 2022 年 5 月 11 日
  • 本文字数:1640 字

    阅读完需:约 5 分钟

写在前面

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


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


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

叨叨一下 HTML

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


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


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


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


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


这里必须要补充一下,HTML 还有但标签,例如 <img /> 就是,注意和上述提及的 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. 操作可重复,人力可完成,但是很浪费时间


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



发布于: 刚刚阅读数: 2
用户头像

爬虫 100 例作者,蓝桥签约作者,博客专家 2021.02.06 加入

6 年产品经理+教学经验,3 年互联网项目管理经验; 互联网资深爱好者; 沉迷各种技术无法自拔,导致年龄被困在 25 岁; CSDN 爬虫 100 例作者。 个人公众号“梦想橡皮擦”。

评论

发布
暂无评论
来自2022年的Python 网络爬虫补充知识,HTML+JSON+爬虫场景_5月月更_梦想橡皮擦_InfoQ写作社区