您的位置:首页 > 编程语言 > Python开发

Python爬虫入门<一>简单爬虫

2018-03-31 17:18 197 查看

Python入门<一>

标签: python爬虫 python3

第一:了解爬虫

首先,先来理解一下什么是爬虫:

网络爬虫(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人。其目的一般为编纂网络索引,网络爬虫就是根据网页的地址来寻找网页的,也就是URL。比如说我们在浏览器的地址栏中输入的字符串就是URL,例如:https://www.baidu.com/ 具体内容请点击此处

首先,我们从定义出发:什么是万维网,从本质来讲:万维网资源通常使用HTTP访问,这是许多互联网通信协议的其中之一[20]。

若要进入万维网上一个网页,或者其他网络资源的时候,通常需浏览器上键入你想访问网页的统一资源定位符(URL),或者通过超链接方式链接到那个网页或网络资源。这之后的工作首先是URL的服务器名部分,被名为域名系统的分布于全球的因特网数据库解析,并根据解析结果决定进入哪一个IP地址(IP Address)。

接下来的步骤是为所要访问的网页,向在那个IP地址工作的服务器发送一个HTTP请求。在通常情况下,HTML文本、图片和构成该网页的一切其他文件很快会被逐一请求并发送回用户。

网络浏览器接下来的工作是把HTML、CSS和其他接受到的文件所描述的内容,加上图像、链接和其他必须的资源,显示给用户。这些就构成了你所看到的“网页”。

大多数的网页自身包含有超链接指向其他相关网页,可能还有下载、源文献、定义和其他网络资源。像这样通过超链接,把有用的相关资源组织在一起的集合,就形成了一个所谓的信息的“网”。<摘自维基百科>

第二:HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTP的请求响应模型

HTTP协议永远都是客户端发起请求,服务器回送响应。这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。

工作流程

一次HTTP操作称为一个事务,其工作过程可分为四步:

1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。

2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容

4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。

第二:前期准备

了解Python中urllib库参考这个博客

工具:pycharm Fiddler(抓包工具)

第三:简单爬虫

import urllib.request
#网址
url = "http://www.baidu.com"
#请求
request = urllib.request.Request(url)
#结果
response = urllib.request.urlopen(url)
#读取
data = response.read()
data = data.decode('utf-8')
#或者之间这一句:print(response.read().decode('utf-8'))
print (data)




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息