【Day 01】- 前言: 从 0 开始的网路爬虫

前言

近年人工智慧与大数据十分热门,其背後需要许多有效的资料,先不论 Data Tagging 的部分,网路爬虫是个爬取有效资料的好方法,甚至大家常用的 google 搜寻引擎也是传统爬虫的一种。

事实上网路爬虫能有许多方便的用途,像是你可以做一个抢票爬虫不用让你早起/熬夜抢票、能自动按赞的爬虫让你的朋友的贴文都多一个赞或是今天要整理一些下载连结、文章、股票甚至是串接 CDC API 让你每天自动爬取 COVID19 每日确诊数都是能透过简单撰写一只爬虫去做到的。

这次铁人赛会使用 Python 这个语言来撰写我们的爬虫,欢迎各位没写过爬虫且充满兴趣、有写过但想了解更多种类或者是想看看如何绕过反爬虫技术的读者们能够持续收看并订阅本系列~

我是谁

昵称: Vincent55

vincent55.tw

ncku csie 大一新生,之前有玩过竞程,之後接触 CTF ,最近在碰网路和 Minecraft Bot 的东西

参赛动机

  1. 写铁人赛蛮酷的。owo
  2. 想用这 30 的连续技术文章撰写训练我写技术文章的能力。
  3. 去年 7 月担任过网路爬虫实习生,这一年来都有使用这项技术来使生活更加便利,这次铁人赛想把一些经验总结分享给读者,从最基础的 requests 到应对反爬虫技术。

开始前需要会甚麽

只要有一台能运行作业系统的电脑就行了,会从 0 开始从语法介绍起,主要是以 Windows 系统为主使用 Python 语言,不是 windows 也不用紧张,爬虫环境等问题都是大同小异的。

大纲

day 2~5 环境、基本 Python 语法

day 6~10 基本爬虫初探

day 11~14 实战(ptt 爬虫、映像档爬虫)

day 15~17 资料持久化

day 18 selenium 介绍

day 19~24 实战(Dcard 文章爬虫、 Instargram 按爱心机器人、 Discord 自动留言爬虫、抢票机器人)

day 25 串接 API

day 26~27 实战(自动爬取大量狗狗/ 猫猫照片 、 CDC 确诊数自动爬取)

day 28~29 常见反爬虫技术与应对

day 30 结语

目录

【Day 02】- 网路爬虫环境设定(Python、pipenv、Vscode)
【Day 03】- Python 基础操作与常见资料型态(整数、浮点数、布林值、字串、串列、元组、字典)
【Day 04】- Python 条件判断与回圈
【Day 05】- Python 字串操作(正规表达式 regexes 、原生基本操作)
【Day 06】- 听说 F12 可以拿来骇入小恐龙? (网页开发工具分析流量)
【Day 07】- 第一只网路爬虫要用什麽函式库? (Requests)
【Day 08】- 有着资料清洗功能的 Requests-HTML
【Day 09】- 大家都爱的 BeautifulSoup
【Day 10】- 你的爬虫是哪一类的? (网路爬虫的类型)
【Day 11】- 还在 PTT 点击已满 18 岁? 带上 cookies 吧!(实战 PTT 爬虫 1/3)
【Day 12】- 这页爬完了,爬下一页。PTT 爬好爬满!(实战 PTT 爬虫 2/3)
【Day 13】- 用 JSON 储存爬来的 PTT 文章。(实战 PTT 爬虫 3/3)
【Day 14】- 实战爬取 Ubuntu ISO 映像档下载网址
【Day 15】- 汇率什麽的。爬! (实战汇率爬虫 on chrome)
【Day 16】- 做 Excel 输入数据到心累?消警告的服学输入很繁琐? 使用 openpyxl 来操作 Excel
【Day 17】- 手动更新汇率太麻烦了! 汇率爬虫搭配 OpenPyXL 做到自动读取&更新汇率!
【Day 18】- 像个使用者的爬虫 Selenium
【Day 19】- 让 Selenium 去 Dcard 上爬文! (实战 Selenium 模拟使用者划手机 1/2)
【Day 20】- 让 Selenium 去 Dcard 上自动向下卷动 (实战 Selenium 模拟使用者划手机 2/2)
【Day 21】- 你的爬虫还在用帐号密码进行登入? 带上 Session 吧!(实战 Selenium 自动点击 Instagram 好友贴文赞 1/2)
【Day 22】- 将朋朋的 Instagram 贴文全部按赞owo(实战 Selenium 自动点击 Instagram 好友贴文赞 2/2)
【Day 23】- 想用个人的帐号在 Discord 自动留言? 爬虫能做到!(实战 Selenium 在 Discord 文字频道内留言)
【Day 24】- 用方便的 Postman 储存或测试 API
【Day 25】- 什麽几百张几千张的猫猫图片,戳一戳就结束了(实战 requests 向 API 请求获得回应)
【Day 26】- 分析卫生福利部疾病管制署(CDC)官网并取得确诊者 API,并用小程序及时取得官方确诊者数量(实战分析网站向外请求 API 加快爬虫节奏)
【Day 27】- 再爬一次 Dcard ?(实战向 Dcard API 发出请求)
【Day 28】- 这个验证码有点难破解(应对反爬虫技术-验证码篇)
【Day 29】- 应对反爬虫技术-综合篇
【Day 30】- 结语 : 从 0 开始的网路爬虫


<<:  Day 1: 人工智慧在音乐领域的应用 (简介篇)

>>:  Day03 - Gem-strip_attributes 介绍与应用

第六章 之四

先前不太会用markdown跟这系统上的工具,所以一直都没有玩图文来解说内容,仅有一开始使用,但看来...

[day18]Vue实作-会员中心主页

会员中心主页 预期於会员中心主页可以有订单纪录及基本资料设定几个功能,先按照实作制作,这部分都是直接...

Annotation in Kotlin

接下来就可以利用上面的 meta-annotation 去定义我们的属性。 @Target(Anno...

Day 13 : Maximum Subarray

今天的题目是要我们在一个整数阵列中找到子阵列(subarray),也就是撷取阵列中相连的一部分,求出...

php没法连线资料库

在连资料库的时候 跑出这个错误 请问各位大大是哪里有问题? 这是错误的程序 说第八行可是我不知道哪...