爬虫与网络编程基础

跟着 Coggle 三月份的学习活动 补充一下这方面的技能。恰好最近收集数据集也比较需要这方面的知识。

0x00 内容介绍

爬虫与网络编程基础这部分的入门学习的要解决的问题如下:

  • 对网络编程了解较少,不会从 HTML 中提取信息;
  • 不会爬虫,不会收集数据,也不会部署模型。

而上述问题都是一个合格算法工程师所必备的。因此借助这个活动来入门。

0x01 学习内容

当今的世界是一个互联的世界,绝大多数的计算机和人都在通过网络和他人传递信息、沟通互联。我们在网络上学习、游戏、工作,我们提供各种各样的网络服务,又有很多人使用着各种各样的网络服务。网络改变了世界,而程序员“定义”了网络。我们在代码中实现了网络的通信,让一切变得可能。网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。在本次学习中我们将学习基础的爬虫操作,并学习基础的 HTTP 协议,最后尝试完成基础的网络编程。

0x02 打卡汇总

任务名称难度所需技能
任务 1:计算机网络基础低、1json、xml
任务 2:HTTP 协议与 requests低、1requests
任务 3:bs4 基础使用中、2bs4
任务 4:bs4 高阶使用高、3bs4
任务 5:正则表达式高、3re
任务 6:Python 网络编程基础高、3scoket
任务 7:tornado 基础使用中、2tornado
任务 8:tornado 用户注册/登录高、3tornado
任务 9:tornado 部署机器学习模型中、2tornado
  • 任务 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 基础使用
  • 任务 8:tornado 用户注册/登录
    • 步骤 1:使用 sqlite 创建用户信息表,表包含 uidnamepasswd 三个字段。
    • 步骤 2:编写 tornado 的用户注册 handler,完成用户注册逻辑,具体需要判断用户名和 passwd 合理性(不包含空格 & 最大长度限制),然后插入数据。
    • 步骤 3:编写 tornado 的用户登录 handler,完成用户登录逻辑,根据 name 和 passwd 判断是否登录成功。
    • 步骤 4:结合 requests 和 tornado 完成上述逻辑。
  • 任务 9:tornado 部署机器学习模型
    • 步骤 1:读取 外卖评论数据集
    • 步骤 2:使用 jieba 进行分词,TFIDF 提取特征,并选择分类器进行训练。
    • 步骤 3:将文本分类模型使用 tornado 进行部署,客户端 requests 发送文本进行分类。

0x03 学习资料

References

Coggle 30 Days of ML(22 年 3 月) - Coggle 数据科学