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)
相关文章推荐
- MySQL<一>简单语法
- 简单网络爬虫实现<爬取网页邮箱>
- JNA实战笔记汇总<一> 简单认识JNA|成功调用JNA
- [Python爬虫] scrapy爬虫系列 <一>.安装及入门介绍
- 图片加载框架简单介绍<一> ImageLoader 的基本使用
- 简单 python爬虫 <1>
- EF 简单介绍<一>
- MYSQL存储过程<一>:简单的传入参数、传出参数 3ff0
- java学生管理系统界面简单实现<一>
- 简单 python爬虫 <2>
- 堆排序<一> ---------简单结构堆排序
- <一>读<<大话设计模式>>之简单工厂模式
- GCD的简单使用<一>
- 黑马程序员 java高新技术<一>--eclipse开发工具、java5的一些简单新特性
- <一>大话设计模式之简单工厂模式
- 简单OS开发前奏<一>EDITPLUS+MASM32搭建汇编开发环境(16位+32位)
- Java实现简单的Json解析器<一>
- nodejs简单爬虫->获取分页数据->下载多特的应用信息
- 简单的C程序<一>:字符间空格处理
- Solr 数据导入 <一>DIH简单使用