爬虫与网络编程基础
跟着 Coggle 三月份的学习活动 补充一下这方面的技能。恰好最近收集数据集也比较需要这方面的知识。
0x00 内容介绍
爬虫与网络编程基础这部分的入门学习的要解决的问题如下:
- 对网络编程了解较少,不会从 HTML 中提取信息;
- 不会爬虫,不会收集数据,也不会部署模型。
而上述问题都是一个合格算法工程师所必备的。因此借助这个活动来入门。
0x01 学习内容
当今的世界是一个互联的世界,绝大多数的计算机和人都在通过网络和他人传递信息、沟通互联。我们在网络上学习、游戏、工作,我们提供各种各样的网络服务,又有很多人使用着各种各样的网络服务。网络改变了世界,而程序员“定义”了网络。我们在代码中实现了网络的通信,让一切变得可能。网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。在本次学习中我们将学习基础的爬虫操作,并学习基础的 HTTP 协议,最后尝试完成基础的网络编程。
0x02 打卡汇总
任务名称 | 难度 | 所需技能 |
---|---|---|
任务 1:计算机网络基础 | 低、1 | json、xml |
任务 2:HTTP 协议与 requests | 低、1 | requests |
任务 3:bs4 基础使用 | 中、2 | bs4 |
任务 4:bs4 高阶使用 | 高、3 | bs4 |
任务 5:正则表达式 | 高、3 | re |
任务 6:Python 网络编程基础 | 高、3 | scoket |
任务 7:tornado 基础使用 | 中、2 | tornado |
任务 8:tornado 用户注册/登录 | 高、3 | tornado |
任务 9:tornado 部署机器学习模型 | 中、2 | tornado |
- 任务 1:计算机网络基础
- 步骤 1:在 Pyhon 中创建一个 list,存储以下个人信息(姓名、年龄、成绩):[小王、40、50],[小贾、50、23]。
- 步骤 2:将步骤 1 的数据存储为 json 格式,并进行读取。
- 步骤 3:将步骤 1 的数据存储为 xml 格式,并进行读取。
- 步骤 4:学习 计算机网络基础 ,思考从打开 coggle.club 到网页展示,有什么步骤?将你的思考结果写到博客。
- 任务 2:HTTP 协议与 requests
- 步骤 1: 学习 HTTP 协议
- 步骤 2:HTTP 的 get 和 post 有什么区别?用处在哪儿?将你的思考写到博客。
- 步骤 3:使用 Python 中 requests 中的 get 访问百度。
- 任务 3:bs4 基础使用
- 学习资料: https://beautiful-soup-4.readthedocs.io/en/latest/
- 步骤 1:使用 requests 和 bs4 爬取 sklearn api 页面。
- 步骤 2:在 api 页面中有多少个模块?有多少个 API?如 sklearn.base.DensityMixin,其中 base 为模块,DensityMixin 为 API。
- 步骤 3:将模块名作为 key,api 作为 value 存储为字典。
- 任务 4:bs4 高阶使用
- 步骤 1:爬取 sklearn 机器学习名词页面 , 爬取所有的名词,如 1d、2d 和 api;
- 步骤 2:有一些名词在介绍时,会有额外的链接,请将每个名词介绍对应的链接也找出。
- 步骤 3:原始的名词安装本身有类别,如下所示,你能将爬取的结果进行分类吗?
General Concepts
Class APIs and Estimator Types
Target Types
Methods
Parameters
Attributes
Data and sample properties
- 任务 5:正则表达式
- 步骤 1: 学习正则表达式 re 模块使用 。
- 步骤 2:使用 re 筛选出机器学习名词,只包含字母的名词;
- 步骤 3:使用 re 筛选出机器学习名词,首字母为 A 或 首字母为 B 的名词。
- 任务 6:Python 网络编程基础
- 步骤 1: 学习 Socket 编程
- 步骤 2:使用编写一个 Socket 聊天机器人,程序 A 发送数据给程序 B,程序 B 也可以发送信息给程序 A;
- 步骤 3:使用编写一个 Socket 聊天机器人,程序 A 发送文件内容给 程序 B,程序 B 将文件进行存储。
- 任务 7:tornado 基础使用
- 步骤 1:学习 tornado 基础使用
- 步骤 2:编写 tornado 的 hello word 程序。
- 步骤 3:编写 tornado 的 handler,分别接受 post 和 get 请求,请求为两个数字,进行求和,然后返回结果。
- 任务 8:tornado 用户注册/登录
- 步骤 1:使用 sqlite 创建用户信息表,表包含
uid
,name
,passwd
三个字段。 - 步骤 2:编写 tornado 的用户注册 handler,完成用户注册逻辑,具体需要判断用户名和 passwd 合理性(不包含空格 & 最大长度限制),然后插入数据。
- 步骤 3:编写 tornado 的用户登录 handler,完成用户登录逻辑,根据 name 和 passwd 判断是否登录成功。
- 步骤 4:结合 requests 和 tornado 完成上述逻辑。
- 步骤 1:使用 sqlite 创建用户信息表,表包含
- 任务 9:tornado 部署机器学习模型
- 步骤 1:读取 外卖评论数据集。
- 步骤 2:使用 jieba 进行分词,TFIDF 提取特征,并选择分类器进行训练。
- 步骤 3:将文本分类模型使用 tornado 进行部署,客户端 requests 发送文本进行分类。
0x03 学习资料
- https://www.jianshu.com/p/f6292d732217
- https://www.bilibili.com/video/av59706997/
- https://cuiqingcai.com/1319.html