马士兵Python全栈/数据挖掘/AIoT智能物联网-0基础到高薪就业班-笔记学习

313 阅读4分钟

Download:学习资料 提取码:pakq

这是一篇详细介绍 Python 爬虫入门的教程,从实战出发,适合初学者。读者只需在阅读过程紧跟文章思路,理清相应的实现代码,30 分钟即可学会编写简单的 Python 爬虫。

  这篇 Python 爬虫教程主要讲解以下 5 部分内容:

  了解网页;

  使用 requests 库抓取网站数据;

  使用 Beautiful Soup 解析网页;

  清洗和组织数据;

  爬虫攻防战;

  以中国旅游网首页()为例,抓取中国旅游网首页首条信息(标题和链接),数据以明文的形式出面在源码中。在中国旅游网首页,按快捷键【Ctrl+U】打开源码页面,如图 1 所示。

  图 1 中国旅游网首页源码网页一般由三部分组成,分别是 HTML(超文本标记语言)、CSS(层叠样式表)和 JScript(活动脚本语言)。

  HTMLHTML 是整个网页的结构,相当于整个网站的框架。带“<”、“>”符号的都是属于 HTML 的标签,并且标签都是成对出现的。

  常见的标签如下:

  .. 表示标记中间的元素是网页

  .. 表示用户可见的内容

  

..
表示框架

  

..

表示段落

  

  • ..
  • 表示列表

      ..表示图片

      

    ..

    表示标题

      <a href=www.360doc.com/content/19/…..表示超链接

      CSSCSS 表示样式,图 1 中第 13 行<style type="text/css">表示下面引用一个 CSS,在 CSS 中定义了外观。

      JScriptJScript 表示功能。交互的内容和各种特效都在 JScript 中,JScript 描述了网站中的各种功能。

      如果用人体来比喻,HTML 是人的骨架,并且定义了人的嘴巴、眼睛、耳朵等要长在哪里。CSS 是人的外观细节,如嘴巴长什么样子,眼睛是双眼皮还是单眼皮,是大眼睛还是小眼睛,皮肤是黑色的还是白色的等。JScript 表示人的技能,例如跳舞、唱歌或者演奏乐器等。

      通过编写和修改 HTML,可以更好地理解 HTML。首先打开一个记事本,然后输入下面的内容:

      

      

       Python 3 爬虫与数据清洗入门与实战

      

      

      

      

    Python 3爬虫与数据清洗入门与实战

      

      

      

      

      

      输入代码后,保存记事本,然后修改文件名和后缀名为"HTML.html";

      运行该文件后的效果,如图 2 所示。

      图 2

      这段代码只是用到了 HTML,读者可以自行修改代码中的中文,然后观察其变化。

      几乎每一个网站都有一个名为 robots.txt 的文档,当然也有部分网站没有设定 robots.txt。对于没有设定 robots.txt 的网站可以通过网络爬虫获取没有口令加密的数据,也就是该网站所有页面数据都可以爬取。如果网站有 robots.txt 文档,就要判断是否有禁止访客获取的数据。

      以淘宝网为例,在浏览器中访问 www.taobao.com/robots.txt,… 3 所示。

      图 3 淘宝网的robots.txt文件内容

      淘宝网允许部分爬虫访问它的部分路径,而对于没有得到允许的用户,则全部禁止爬取,代码如下:

      User-Agent:*

      Disallow:/

      这一句代码的意思是除前面指定的爬虫外,不允许其他爬虫爬取任何数据。

      首先在 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 方式,多了以表单形式上传参数的功能,因此除查询信息外,还可以修改信息。

      所以,在写爬虫前要先确定向谁发送请求,用什么方式发送。

      复制任意一条首页首条新闻的标题,在源码页面按【Ctrl+F】组合键调出搜索框,将标题粘贴在搜索框中,然后按【Enter】键。