Python爬虫基础知识及前期准备

学习爬虫有一小段时间了,于是决定把自己学爬虫时所学的,写过的代码以及看过的文档记录下来,权当小结。第一次写这些,如果有错误,请多指教。

首先我们需要了解一下什么是爬虫。

根据百度百科上给出的定义,” 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。“简单来说,爬虫类似手动下载网页信息,比如小说、歌曲。说到这,或许会有疑问,既然这样,干嘛还去敲代码,直接人工处理不好吗?话是这么说,但如果下载的不是一篇两篇小说,一首两首歌曲呢,需要将整个网站的信息全部爬取下来,这个时候人工操作显得有些力不从心了。

学习简单的爬虫应该做些什么前期准备,我们来梳理一下:

  • 首先我们需要熟悉一门编程语言,在这里我们以Python为例,我们需要简单的了解其语法,掌握列表、字典等数据结构的用法,for循环,文件读取存储等操作,这些将是我们写的爬虫在获取信息,处理信息,存储信息需要用到的知识。不做一一介绍,基础语法可参照菜鸟教程Python基础教程
  • 熟悉网页的基础知识,不需要很精通,但需要有个了解。这里只是简单介绍,想了解更多可以查看我附在介绍后的文档链接

URL:(Universal Resource Locator即统一资源定位符)URL是对能从Internet上得到资源的位置和访问方法的一种简洁的表示。URL给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位,

使得系统得以对资源(指Internet上可以访问的任何对象,包括文件目录、文件、文档、图像等,以及其他任何形式的数据)进行各种操作,如存储、更新、替换和查找其属性。

URL的一般形式为:

<URL的访问形式>://<主机>:<端口>/<路径>

左边的<URL的访问形式>主要有文件传送协议(FTP)、超文本传送协议(HTTP)等方式,常见形式为HTTP,下面将会介绍到。<主机>一项是必须的,<端口>和<路径>有时侯可省略。例如:http ://

HTTP:(HyperText Transfer Protocol 即超文本传输协议)HTTP是一个简单的请求——响应协议,通常运行在TCP之上,它指定了客户端可能发送给服务器的消息,以及得到的响应。我们可以简单的了解其发包和收包的概念(GET/POST)详情可以参考菜鸟教程HTTP教程


HTML:(HyperText Markup Lanhguage 即超文本标记语言)HTML是一种制作万维网页面的标准语言,它消除了计算机信息交流的障碍。HTML定义了许多用于排版的”标签“,各种标签嵌入到万维网的页面就构成了HTML文档。我们所要爬取的页面也基本是HTML网页。所以对于HTML中的一些标签需要有所了解,同时也可了解用来控制网页样式布局的CSS,方便以后的解析网页。菜鸟教程HTML教程,菜鸟教程CSS教程

  • 掌握抓包分析工具

一种方法是通过谷歌或者火狐浏览器自带的开发者工具,F12或者鼠标右键检查,可以快速方便的定位网页元素位置

另一种方法是通过抓包分析工具 Fiddler,我也不是很经常用,一般浏览器F12+F5搞定,关于Fiddler的用法可以百度。

  • 正则表达式

用来提取网页信息的表达式,可能会觉得有些繁琐,但学会一个通配模式后,就会觉得正则其实挺好用的。关于正则的教程,推荐大家看看这个:正则表达式30分钟入门教程,另外用正则表达式的时候,如果直接通过代码测试正则表达式的可行性,费时间且麻烦,给大家推荐个网站:正则表达式在线测试

  • 最后就是一些爬虫所需的Python库,大家可以直接在命令行通过pip安装,用PyCharm的可以在Setting中安装。

1.requests 用来请求网页的模块,与之相同作用的还有urllib,不过我更习惯requests requests中文文档

2.BeautifulSoup 用来解析网页的模块,在小型爬虫中具有强大作用,且简单易学。配合requests使用便可轻松爬取并解析网页。BeautifulSoup4.4.0文档

看上去这些内容有点多,但这通过几个小项目还是很好上手的。当然,爬虫可不止这些简单的内容,真正有难度的便在于针对各种反爬取措施所做的策略了,而这,也会在后续通过简单实战的方式向大家介绍,无论是文档还是视频,都只是我们了解爬虫知识的前提,真正使我们掌握的,只有实战,通过自己动手编写代码,相信大家能够很快掌握爬虫的基本使用方法。

好了,第一次就说这么多了,希望大家多多指教,一起学习呀。

python学习交流群:125240963

转载至:https://zhuanlan.zhihu.com/p/36432510

猜你喜欢

转载自www.cnblogs.com/pythonedu/p/9029090.html