对Python有一些简单了解的朋友都知识Python编程语言有个很强大的功能,那就是Python网络爬虫(http://www.maiziedu.com/course/python/645-9570/),一提到Python,就会想到相关的Python爬虫和scrapy等等,今天就来简单认识学习Python爬虫的基础知识,有了一定的相关爬虫知识,以后学习scrapy、urllib等等知识时,会相对轻松些。
爬虫:
网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。
聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。
另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
聚焦爬虫还需要解决三个主要问题:
(1) 对抓取目标的描述或定义;
(2) 对网页或数据的分析与过滤;
(3) 对URL的搜索策略。
抓取网页的过程:
抓取网页的过程其实和我们平时用浏览器打开网页链接差不多,只是平时我们所用的浏览器会自动将抓取的HTML代码转化为我们容易理解的内容。打开浏览器,按下的电脑的F12键,就可以查看该网页的HTML代码。
什么是URI
Web上可用的每种资源 - HTML文档、图像、视频片段、程序等,由一个通过通用资源标志符(Universal Resource Identifier, 简称"URI")进行定位。
什么是URL:
URL是Uniform Resource Location的缩写,译为“统一资源定位符”。通俗地说,URL是Internet上用来描述信息资源的字符串,采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
URI与URL的区别是:URI 和 URL 都定义了 what the resource is。URL 还定义了 how to get the resource。
基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名,如“协议://授权/路径?查询”。完整的、带有授权部分的普通统一资源标志符语法看上去如下:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志
Python爬虫过程中常用的相关包:
urllib:urllib提供的功能就是利用程序去执行各种HTTP请求。
urllib2:urllib2 是python的一个获取url(Uniform ResourceLocators,统一资源定址器)的模块。它用urlopen函数的形式提供了一个非常简洁的接口。这使得用各种各样的协议获取url 成为可能。它同时也提供了一个稍微复杂的接口来处理常见的状况-如基本的认证,cookies,代理,等等。这些都是由叫做opener和handler 的对象来处理的。
re:正则表达式模块,指定一个与之匹配的字符集合,该模块所提供的函数,可以用来检查所给的字符串是否与指定的正则表达式匹配。
Beautiful Soup:Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简 单,所以不需要多少代码就可以写出一个完整的应用程序。Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这 时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。
requests:requests 是python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么有时候会用requests而不用urllib2呢?官方文档中是 这样说明的:python的标准库urllib2提供了大部分需要的HTTP功能,但在实现某些简单的功能中,不如requests简单。
以上就是Python网络爬虫的基础知识,如果你已经掌握了,欢迎大家看这篇文章:Python网络爬虫实战-Scrapy(http://www.maiziedu.com/course/python/458-7430/)