爬虫分类
爬虫可分为三类:通用网络爬虫、聚焦网络爬虫和增量式网络爬虫
通用网络爬虫
通用网络爬虫是搜索引擎的重要组成部分,通用网络爬虫需要遵守robots协议,网站通过此协议告诉搜索引擎那些页面可以抓取,哪些页面不允许抓取。
robots协议:是一种“约定俗成”的协议,并不具备法律效力,它体现了互联网人的“契约精神”。行业从业者会自觉遵守该协议,因此它又被称为“君子协议”。
聚焦网络爬虫
是面向特定需求的一种网络爬虫程序。它与通用爬虫的区别在于:聚焦爬虫在实施网页抓取的时候会对网页内容进行筛选和处理,尽量保证只抓取与需求相关的网页信息。聚焦网络爬虫极大地节省了硬件和网络资源,由于保存的页面数量少所以更新速度很快,这也很好的满足一些特定人群对特定领域信息的需求。
增量式网络爬虫
是指对已下载网页采取增量式更新,它是一种只爬取新产生的或者已经发生变化网页的爬虫程序,能够在一定程度上保证所爬取的页面是最新的页面。
编写爬虫的流程
爬虫程序与其他程序不同,它的思维逻辑一般都是相似的,所以无需我们在逻辑方面花费大量的时间。下面对python编写爬虫程序的流程做简单地说明:
- 先有urllib模块的request方法打开url,得到网页HTML对象
- 使用浏览器打开网页源代码分析网页结构以及元素节点
- 通过Beautiful Soup或正则表达式提取数据
- 存储数据到本地磁盘或数据库
网页构成
网页一般由三部分组成,分别是HTML(超文本标记语言)、CSS(层叠样式表)和JavaScript(简称“JS”,动态脚本语言),它们三者在网页中分别承担着不同的任务。
- HTML负责定义网页的内容
- CSS负责描述网页的布局
- JavaScript负责网页的行为
HTML
HTML是网页的基本结构,它相当于人体的骨骼结构。网页中同时带有“<”,“>”符号的都属于HTML标签。常见的HTML标签如下:
标签 | 描述 |
---|---|
声明为HTML5文档 | |
.. | 网页的根元素 |
.. | 包含了文档的元数据,如定义网页编码格式为utf-8 |
描述文档的标题 | |
.. | 定义文档的主体 |
.. |
定义文档中的节 |
.. |
定义文档中的段落 |
|
定义无序列表 |
|
定义有序列表 |
定义列表的项目 | |
定义图像 | |
.. |
定义标题 |
<a href="">.. | 定义超文本链接 |
定义注释 |
编写如下代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Torres</title> </head> <body> <a href="www.baidu.com">点击访问</a> <h1>托雷斯www.torres.com</h1> <h2>Python爬虫</h2> <div> <p>认识网页结构</p> <ul> <li>HTML</li> <li>CSS</li> <li>JS</li> </ul> </div> </body> </html>
运行结果如下:
CSS
css表示层叠样式表,其编写方法有三种,分别是行内样式、内嵌样式和外联样式。CSS代码演示如下:
<!DOCTYPE html> <html> <head> <!--内嵌样式-->> <style type="text/css"> body { background-color: yellow; } p { font-size: 30px; color: springgreen; } </style> <meta charset="utf-8"> <title>Torres</title> </head> <body> <!--h1标签使用了行内样式--> <h1 style="color: blue;">托雷斯www.torres.com</h1> <a href="www.baidu.com">点击访问</a> <h2>Python爬虫</h2> <div> <p>认识网页结构</p> <ul> <li>HTML</li> <li>CSS</li> <li>JS</li> </ul> </div> </body> </html>
运行结果如下:
PS:
- 内嵌样式通过style标签书写样式表
- 行内样式则通过HTML元素的style属性来书写CSS代码。(注:每一个HTML元素,都有style、class、id、name、title属性)
- 外联样式表则指的是CSS代码单独保存为以.css结尾的文件,并使用引入到所需页面。当样式需要被应用到多个页面的时候,使用外联样式表是最佳的选择。
<head> <link rel="stylesheet" type="text/css" href="mystyle.css"> </head>
JavaScript
js负责描述网页的行为,比如,交互的内容和各种特效都可以使用js来实现。当然也可以通过其他方式实现,比如jQuery、还有一些前端框架(Vue、React等),不过它们都是在js的基础上实现的。
简单示例:
<!DOCTYPE html> <html> <head> <style type="text/css"> body { background-color: rgb(220, 226, 226); } </style> <meta charset="utf-8"> <title>Torres</title> </head> <body> <h1 style="color:blue">托雷斯www.torres.com</h1> <h2>python爬虫</h2> <p>点击下方按钮获取当前时间</p> <button onclick="DisplayDate()">点击这里</button> <p id="time" style="color: red;"></p> <!--script标签内部编写js代码--> <script> function DisplayDate() { document.getElementById("time").innerHTML = Date() } </script> </body> </html>
运行结果如下:
总结
如果用人体来比喻网站结构的话,那么HTML是人体的骨架,它定义了人的嘴巴、眼睛、耳朵长在什么位置;CSS描述了人体的外观细节,比如嘴巴长什么样子,眼睛是双眼皮还是单眼皮,皮肤是黑色还是白色等;而js则表示人拥有的技能,比如唱歌、打球、游泳等。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律