Python 爬虫入门学习

前言

由于实验室项目需要大量的文本信息作为数据支撑,因此需要一种自动化获取信息的工具,爬虫( 用程序在互联网上获取特定信息的一种手段)就进入了我的学习课程。爬虫需要一门编程语言作为基础,而Python 有着强大的第三方库,能为爬虫提供极大的便利,因此我选择 Python 这门编程语言作为爬虫的基础。

学习路线

爬虫全过程分析:

爬虫思路

由于目的是为了在互联网上获取特定的信息,因此需要以下解决几个问题:

  1. 目标资源在互联网的哪一个位置;

  2. 目标资源在前端(互联网的具体页面)是如何体现的;

  3. 锁定目标资源后,如何获取相关数据;

  4. 如何存储有关数据。

解决方案

对应上述每一点问题,提供对应解决方法。

  1. 进入到目标资源所在的页面后,查看浏览器的地址栏,将地址栏中的内容复制即可。 补充:地址栏中的内容为统一资源定位符(Uniform Resource Locator, URL),是因特网上标准的资源的地址。好比你现在要去拜访一个人,那么URL就是这个人的家庭地址,你可以根据URL找到你要拜访的那个人。URL的一般形式是:协议 + 服务器 + 相对文件路径 + 文件名,例子:https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.mdhttps为访问协议,github.com为服务器20.205.243.166对应解析的域名(域名与服务器是一一对应的,二者转换是通过DNS服务器完成的),ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main是文件相对于服务器根目录的相对路径,README-zh_CN.md为资源的文件名。

  2. F12 / Fn + F12打开开发者工具,点击左上角的小箭头(目的是为了使用检查元素功能),此时在页面中点击想获取的资源,便会自动定位到资源对应的前端代码,观察前端代码为下一步进行数据提取做好准备(参考 Fig.1)。

  3. 定位好前端代码后,紧接着是使用正则表达式进行数据获取。正则表达式(regular expression, re) 是一种字符串匹配模式,可以用来判定一个字符串中是否含有某种子串、进行字符串替换或者取出字符串中符合某个条件的子串等,详细内容可参考菜鸟教程:正则表达式。为了找出相应资源的前端代码,首先要使用 re.compile() 方法规定出相应资源的“模样”,其次再用这种“模样”去匹配前端代码。这就像相亲,你先在心目中构建一个对伴侣的期待,然后在海一般的相亲市场中根据你的期待去匹配心仪的相亲对象。此时你的期待就是“模样”,相亲市场就是网页中所有的前端代码,现在要做的就是在所有的前端代码中找出你想要的“模样”代码,也就是我们想要的资源(即下文所称的数据)。

  4. 使用正则表达式成功匹配数据之后,可以使用python自带的json模块,把数据以.json形式存储到本地。当然也可以引入像MySQL / sqlite之类的数据库,使用SQL(Structured Query Language)语言,把数据以.db形式存储到本地

Fig.1

样例分析

以下代码为爬取https://ssr1.scrape.center所有电影信息的样例代码。

Last updated

Was this helpful?