零基础入门学习Python爬虫(第一节)

Python版本简介 本文来自小莫扎特博客www.plusminustsuchi.com 提供

因为本教程主要以Python为实现爬虫的语言,因此需要安装Python。Python主要分为Python 和Python 两大阵营,这两大版本有很多不一样,虽然有很多模块还使用这个版本,但也有许多模块渐渐退出了对的更新和支持,未来还是以版本为主流,大部分以为版本的模块也都有了的版本,包括官方的标准库和第三方库,因此推荐使用版本进行开发。本教程也以Python 3为开发语言。

本文来自小莫扎特博客www.plusminustsuchi.com 提供

Python的安装

本文来自小莫扎特博客www.plusminustsuchi.com 提供

  1. Python的官方网站为:;
  2. 截止本文发布,Python的最新版本为Python 3.6.4,出于稳定性和第三方模块支持的考虑,我选择安装一个较为稳定且兼容性较好的版本Python 3.5.2;
  3. 根据安装包的提示下一步下一步就可以安装成功了,在安装界面上有个”Add Python3.5 To Path”的复选框,勾选变可以自动配置环境变量,如果没有勾选,也可以手动配置,步骤如下;
  4. (上一步如果勾选了复选框则这一步开始可以跳过) 以安装路径为”C:\Program Files (x86)\Python35-32\”为例,这里将这个路径复制,然后在桌面找到”此电脑”图标,右键,选择属性,打开”系统面板”,如图(出于安全角度已将计算机信息覆盖)

 

本文来自小莫扎特博客www.plusminustsuchi.com 提供

点击左侧红色框中的”高级系统设置”,打开”系统属性”面板,如图 本文来自小莫扎特博客www.plusminustsuchi.com 提供

 

本文来自小莫扎特博客www.plusminustsuchi.com 提供

点击下方的”环境变量”按钮,打开”环境变量”面板,如图(同样出于安全角度将变量值覆盖) 本文来自小莫扎特博客www.plusminustsuchi.com 提供

  本文来自小莫扎特博客www.plusminustsuchi.com 提供

在下方”系统变量”里找到变量名为”Path”的变量,双击或点击红色框里的编辑按钮,打开”编辑环境变量”面板,如图(同样出于安全角度将变量值覆盖) 本文来自小莫扎特博客www.plusminustsuchi.com 提供

  本文来自小莫扎特博客www.plusminustsuchi.com 提供

点击右边红色框里的”新建”按钮,在左侧光标处输入刚才复制的值”C:\Program Files (x86)\Python35-32\”,再点击一次新建,输入值”C:\Program Files (x86)\Python35-32\Scripts\”,然后一路确定,直至回到”系统”面板,如图(同样出于安全角度将变量值覆盖) 本文来自小莫扎特博客www.plusminustsuchi.com 提供

  本文来自小莫扎特博客www.plusminustsuchi.com 提供

5.打开”CMD”命令行,输入python,如果出现类似于如图的结果 本文来自小莫扎特博客www.plusminustsuchi.com 提供

  本文来自小莫扎特博客www.plusminustsuchi.com 提供

则表示配置Python的环境变量成功。 本文来自小莫扎特博客www.plusminustsuchi.com 提供

6.Python 3.5.2安装包会自动安装Python包管理工具”pip”,这个工具提供了对Python包的查找、下载、安装和卸载功能,因为爬虫的开发需要用到多个Python第三方库,所以需要用pip对这些包进行集中管理,方便又快捷。打开命令行,输入pip,如果显示类似于如图的结果 本文来自小莫扎特博客www.plusminustsuchi.com 提供

 

本文来自小莫扎特博客www.plusminustsuchi.com 提供

则表示pip已经成功安装,如果没有成功安装pip,则可以使用如下方法: 本文来自小莫扎特博客www.plusminustsuchi.com 提供

下载文件,打开命令行,切换到””文件的存储位置,输入命令python ,python就会自动安装pip工具。 本文来自小莫扎特博客www.plusminustsuchi.com 提供

7.推荐开发Python的专业IDE——PyCharm,虽然收费较贵,但是真的很强大很专业,大学生可以申请学生认证,免费使用一年Professional版,每年需要验证一次,建议使用校园邮箱进行认证,方便且审核快。 本文来自小莫扎特博客www.plusminustsuchi.com 提供

简单爬虫

本文来自小莫扎特博客www.plusminustsuchi.com 提供

前期准备已经全部完成,开始正式进入到Python爬虫的世界。

本文来自小莫扎特博客www.plusminustsuchi.com 提供

前面我们已经讲到,爬虫大致分为浏览网页、解析网页、下载网页、存储数据、清洗数据这几个步骤,首先联想我们以人的角度上网,一般是先打开浏览器,输入想要浏览的URL(统一资源定位器),通俗的说就是网址,然后在页面上发现我们喜欢的东西,比如一段文字,然后我们就将这段文字复制下来,新建一个TXT文件或者Doc文件,将复制的内容粘贴上去,保存。那么作为一种编程语言,如何用代码来实现这一全部过程呢?这时候就需要用到几个Python的第三方库了。

本文来自小莫扎特博客www.plusminustsuchi.com 提供

首先我们来介绍第一个模块——Requests 本文来自小莫扎特博客www.plusminustsuchi.com 提供

Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。Requests 允许你发送纯天然,植物饲养的 HTTP/ 请求,无需手工劳动。你不需要手动为 URL 添加查询字串,也不需要对 POST 数据进行表单编码。Keep-alive 和 HTTP 连接池的功能是 100% 自动化的,一切动力都来自于根植在 Requests 内部的 urllib3。(解释源自)

通俗的说,”Requests”是Python的一个HTTP模块,用来进行HTTP请求,并获得响应结果。就好比我们用浏览器访问百度,这其中就包含了一个HTTP请求,即计算机向百度的服务器发出访问请求,百度服务器经过权限审核后通过了这条请求,并返回了百度澳门皇冠金沙网站的HTML代码及其他相关文件,文件在浏览器中组合生成我们所看到的页面。那么Requests就是用来发送这条请求并接受返回的结果的。 本文来自小莫扎特博客www.plusminustsuchi.com 提供

Requests模块的安装便由前面所讲到的pip工具来完成,几乎所有的非标准模块(第三方模块)都可以这样安装。以管理员权限打开CMD命令行,这里一定要用管理员权限,尤其是Python安装在C盘的童鞋,因为系统的保护机制,所以C盘的写入需要最高级的权限。运行命令pip install requestes(r小写),如要获得源码,也可参考http://cn./zh_CN/latest/user/install.html#pip-install-requests。 本文来自小莫扎特博客www.plusminustsuchi.com 提供

爬虫实例

本文来自小莫扎特博客www.plusminustsuchi.com 提供

以爬取百度澳门皇冠金沙网站为例,我们写一个简单的爬虫: 本文来自小莫扎特博客www.plusminustsuchi.com 提供

# -*- coding: utf-8 -*-
import requests
url = '' # 注释1
headers = {
 'User-Agent': 'Mozilla/ (Windows NT 10.0; WOW64) AppleWebKit/ (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/' # 注释2
}
response = (url=url, headers=headers) # 注释3
content = () # 注释4
print(content) # 注释5
 本文来自小莫扎特博客www.plusminustsuchi.com 提供 
  • 注释1:这里写的是URL,即所谓的网址
  • 注释2:访问网址的时候HTTP请求的头文件里都会包含一个User-Agent,这个关键字的解释如下
User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。(解释源自百度百科 - “用户代理”)
 本文来自小莫扎特博客www.plusminustsuchi.com 提供 

在爬虫里,UA就好比一张通行证,通过伪装UA标识,可以让某些爬虫检测机制将你的爬虫当做一个用浏览器访问其网页的自然人,在错误的判断下,便不对这个爬虫进行反爬虫的操作(关于反爬虫在后面的文章里我会仔细说明)。当然要真正的达到”通行”的目的,可能要做的远不止如此。

本文来自小莫扎特博客www.plusminustsuchi.com 提供

headers就是刚才所说的HTTP请求里的头文件,如果将UA比喻成通行证,那么headers就是你的爬虫的档案,它包含了访问者的设备信息,语言信息,编码信息,请求来源信息等各种内容,它同样可以伪装,让你的爬虫变成一个”清白”的访问者,从而让服务器返回正确的内容,爬虫顺利的爬取各种想要的资源。UA是这个档案里的一条内容。

本文来自小莫扎特博客www.plusminustsuchi.com 提供

通常情况下,在获取某些get请求的内容而非post请求的内容时,我们只需要将UA修改成一般浏览器的UA就好了,无需增加其他关键字,而UA的获取将在后面的文章进行讲解。

本文来自小莫扎特博客www.plusminustsuchi.com 提供

  • 注释3:response便是通过向目标服务器进行请求后获得的响应对象,它作为一个对象,包含了服务器的响应的全部内容,就好比派遣一个间谍去获得敌人的内部资料,间谍得手后成功返回,所有的资料都保存在间谍的身上,那么这个间谍就是这个响应对象,我们可以从间谍口中得到任何想知道的内容。(比喻可能不太准确)
  • 注释4:我们将从响应对象那里得到的内容保存在名为content的变量里,,这里的content是响应对象的一个属性,用来返回响应包含的内容,有可能是一段HTML代码,也可能是一段文字,一张图片,一首音乐,但都是以bytes型也就是二进制的形式存在,这里因为返回的是一段HTML代码,因此我们将其解码,使用到decode()方法,将bytes型转变为str型,结果如下:

 

本文来自小莫扎特博客www.plusminustsuchi.com 提供

  • 图中的便是百度澳门皇冠金沙网站的源代码了。
  • 注释4:最后输出如上图的结果

一个简单的爬虫大概就这样完成了,但这里可能还不能真正体现爬虫的便捷和自动化,我将在第二章开始讲解较为复杂的爬虫。

本文来自小莫扎特博客www.plusminustsuchi.com 提供

内容版权声明:以上内容均为转载,如有侵犯原作者请联系删除!