认识网页结构
网页一般由三部分组成,分别是 HTML(超文本标记语言)、CSS(层叠样式表)和 JScript(活动脚本语言)。
HTML
HTML 是整个网页的结构,相当于整个网站的框架。带“<”、“>”符号的都是属于 HTML 的标签,并且标签都是成对出现的。
常见的标签如下:
.. 表示标记中间的元素是网页.. 表示用户可见的内容..
表示段落- ..
- 表示列表 ..表示图片
..
表示标题 ..表示超链接CSS
CSS 表示样式,图 1 中第 13 行<style type="text/css">表示下面引用一个 CSS,在 CSS 中定义了外观。
JScript
JScript 表示功能。交互的内容和各种特效都在 JScript 中,JScript 描述了网站中的各种功能。
如果用人体来比喻,HTML 是人的骨架,并且定义了人的嘴巴、眼睛、耳朵等要长在哪里。CSS 是人的外观细节,如嘴巴长什么样子,眼睛是双眼皮还是单眼皮,是大眼睛还是小眼睛,皮肤是黑色的还是白色的等。JScript 表示人的技能,例如跳舞、唱歌或者演奏乐器等。
写一个简单的 HTML
通过编写和修改 HTML,可以更好地理解 HTML。首先打开一个记事本,然后输入下面的内容:
Python 3 爬虫与数据清洗入门与实战 Python 3爬虫与数据清洗入门与实战
- 爬虫
- 数据清洗
输入代码后,保存记事本,然后修改文件名和后缀名为"HTML.html";
运行该文件后的效果,如图 2 所示。
图 2这段代码只是用到了 HTML,读者可以自行修改代码中的中文,然后观察其变化。
关于爬虫的合法性
几乎每一个网站都有一个名为 robots.txt 的文档,当然也有部分网站没有设定 robots.txt。对于没有设定 robots.txt 的网站可以通过网络爬虫获取没有口令加密的数据,也就是该网站所有页面数据都可以爬取。如果网站有 robots.txt 文档,就要判断是否有禁止访客获取的数据。
以淘宝网为例,在浏览器中访问 https://www.taobao.com/robots.txt,如图 3 所示。
图 3 淘宝网的robots.txt文件内容淘宝网允许部分爬虫访问它的部分路径,而对于没有得到允许的用户,则全部禁止爬取,代码如下:
User-Agent:*
Disallow:/这一句代码的意思是除前面指定的爬虫外,不允许其他爬虫爬取任何数据。
使用 requests 库请求网站
安装 requests 库
首先在 PyCharm 中安装 requests 库,为此打开 PyCharm,单击“File”(文件)菜单,选择“Setting for New Projects…”命令,如图 4 所示。
图 4选择“Project Interpreter”(项目编译器)命令,确认当前选择的编译器,然后单击右上角的加号,如图 5 所示。
图 5在搜索框输入:requests(注意,一定要输入完整,不然容易出错),然后单击左下角的“Install Package”(安装库)按钮。如图 6 所示:
图 6安装完成后,会在 Install Package 上显示“Package‘requests’ installed successfully”(库的请求已成功安装),如图 7 所示;如果安装不成功将会显示提示信息。
图 7 安装成功爬虫的基本原理
网页请求的过程分为两个环节:
- Request (请求):每一个展示在用户面前的网页都必须经过这一步,也就是向服务器发送访问请求。
- Response(响应):服务器在接收到用户的请求后,会验证请求的有效性,然后向用户(客户端)发送响应的内容,客户端接收服务器响应的内容,将内容展示出来,就是我们所熟悉的网页请求,如图 8 所示。
图 8 Response相应网页请求的方式也分为两种:
- GET:最常见的方式,一般用于获取或者查询资源信息,也是大多数网站使用的方式,响应速度快。
- POST:相比 GET 方式,多了以表单形式上传参数的功能,因此除查询信息