Day 17 : 爬虫基本介绍

在python非常有名的一个功能就是爬虫。再来会开始介绍爬虫到底是甚麽以及我们要怎麽使用它获取我们想要的资料。

爬虫到底是甚麽

爬虫英文叫做web crawler,也可以叫spider。其实就是模拟人类去做浏览网站的动作。当你在网站上看到一些文章、资料时,你想拿下来做一些资料分析或是其他运用时,就需要用到爬虫。

举个简单的例子,若我现在想要不用连上IT邦网站就能利用程序读取每日新的文章,我们就可以利用爬虫来实作每日爬一次文章资料的功能,再利用linebot或是discordbot来做到每日定期更新并传给使用者等功能。

静态爬虫and动态爬虫

爬虫的手段又分静态以及动态,简单来讲就是有没有加载网页的概念。像是大部分论坛网站,HTML就写在那边,所以就可以利用静态爬虫的作法直接获取资源,但像是googlemap等利用javascript生成网页内容的网站,静态爬虫是无法获取资源的,这时候就要使用动态爬虫。利用webdriver直接模拟使用者开启网页的动作,进而达到加载网页生成资源的效果。又或者像是论坛等需要登入或输入资料、点击按钮等,都可以利用动态爬虫配合webdriver来做到。

网页三巨头

刚刚提到了HTML、Javascript,为了後面的爬虫我们简单来提一下,网站的建构方式。
首先是HTML,HTML在网页中就是属於骨骼的部分,它将网站的架构建设出来,像是下方就是一个基本的HTML档案:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    HI
</body>
</html>

再来是CSS,这个东西像是衣服或外观,可以修改HTML的资料的排版、样式等,常见的CSS会长这样:

.test{
    color: blue;
}
.test2{
    color: red;
    font-size: 12px;
}

再来就是静态爬虫的噩梦-javascript。这种程序语言帮助网页作互动,就像是一般的程序语言一样,有函式、变数等,加上专门用来跟网站本体交互的语法让javascript一直都在网站建设中成为非常重要的一环。以下是在网页上呈现时间显示的JS程序码范例:

window.onload =  ShowTime();
function ShowTime(){
  var NowDate=new Date();
 var h=NowDate.getHours();
 var m=NowDate.getMinutes();
 var s=NowDate.getSeconds(); 
 document.getElementById('showbox').innerHTML = h+'时'+m+'分'+s+'秒';
 setTimeout('ShowTime()',1000);
  }

知道这些要干嘛呢,其实重点在HTML上,要爬虫前,要先知道我们要爬的东西在哪里,进而撰写程序码,我们可以在浏览器中按下F12或是右键检查,我们就可以看到建构网页的HYML以及其他元素。
https://ithelp.ithome.com.tw/upload/images/20210930/201380603YEfdbf3nV.png
明天就来正式进入爬虫吧,会先从静态爬虫开始,研究如何获取自己想要的资源。


<<:  Day24 订单金流 -- 叮咛

>>:  [Day30] 30 天 Java 从陌生到更陌生

[从0到1] C#小乳牛 练成基础程序逻辑 Day 10 - 转角捡到猫 取什麽名字好? 命名规范

路上捡到猫 | 要取什麽名字? | 很急>< 在线等! 🐄点此填写今日份随堂测验 ...

[Day 19] Facial Recognition: 使用孪生网路做辨识

只要你资料集越完整,辨识模型就越强大 这个系列偏重於方法的介绍与使用,因此今天我们不会重头开始训练...

【Day06】生命周期 Lifecycle(Class Component)

React 元件拥有从产生、渲染 到被移除解放资源的各个阶段 称之为生命周期(Lifecycle)。...

[Day23]Virtual Service

上一篇的Bookinfo这个服务中,我们有使用samples/bookinfo/networking...

GKE (二)

GKE 应用 经过昨天说的建立GKE想必应该已经有了自己的丛集了,那如何在GCP上去使用GKE呢?可...