python网络爬虫——基本概念及代码实现1

来源:互联网 发布:指南针优化布林线源码 编辑:程序博客网 时间:2024/05/03 04:35

Python网络爬虫

爬虫是什么?

网络爬虫就是一段抓取网页程序,基本操作就是抓取网页,每个网页都是有一段段代码组成的,爬虫的工作就是通过网页的链接地址寻找网页。

 

URI和URL的区别

Web上每一种资源(文档、视频、图片、程序)都由一个通用资源标识符(URI)进行定位。URL是URI的一个子集,二者的区别在于,URI表示请求服务器的路径,定义这么一个资源,而URL同时说明要如何访问这个资源(http://)。

 

URL的格式由三部分组成: 

①第一部分是协议(或称为服务方式)。

②第二部分是存有该资源的主机IP地址(有时也包括端口号)。

③第三部分是主机资源的具体地址,如目录和文件名等。

第一部分和第二部分用“://”符号隔开,

第二部分和第三部分用“/”符号隔开。

第一部分和第二部分是不可缺少的,第三部分有时可以省略。

 

URL的一般格式为(带方括号[]的为可选项):

protocol://hostname[:port]/path/[;parameters][?query]

 

爬虫最主要的处理对象就是URL,它根据URL地址取得所需要的文件内容,然后对它 进行进一步的处理。

 

网页抓取

就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地。类似于使用程序模拟IE浏览器的功能,把URL作为HTTP请求的内容发送到服务器端, 然后读取服务器端的响应资源。除了"http:",URL同样可以使用"ftp:","file:"等等来替代。HTTP是基于请求和应答机制的:客户端提出请求,服务端提供应答。

 


Python2中使用的是urllib2和urllib。

Python3中使用的是urllib,urllib五个子模块error、parse、request、response、robotparser。

 

通过urlopen函数将百度网页的代码提取到本地


Python2

import urllib2response = urllib2.urlopen('http://www.baidu.com/')html = response.read()print html

Python3

import urllib.requestresponse = urllib.request.urlopen('http://www.baidu.com/')html = response.read()print(html.decode('UTF-8'))#转换为UTF-8,速度就会变快。


创建一个request对象,返回一个response对象

Python2

import urllib2  req = urllib2.Request('http://www.baidu.com')  response = urllib2.urlopen(req)  the_page = response.read()  print the_page

Python3

import urllib.requestreq = urllib.request.Request('http://www.baidu.com')response = urllib.request.urlopen(req)the_page = response.read()print(the_page.decode('UTF-8'))#转换为UTF-8,速度就会变快。</span>


 

0 0