Python 开发轻量级爬虫05

Python 开发轻量级爬虫

(imooc总结05--网页下载器)

介绍网页下载器
    网页下载器是将互联网上url对应的网页下载到本地的工具。因为将网页下载到本地才能进行后续的分析处理,可以说网页下载器是爬虫的核心组件。
    网页下载器类似于网页浏览器,会将url对应的互联网网页,以HTML的形式下载到本地存储一个本地文件或者本地字符串,然后才能进行后续的分析和处理。
Python有哪几种网页下载器呢?
    Urllib2 – python官方的基础模块,它支持直接的url下载,
              或者说向网页提交一些需要用户输入的数据,甚至支持需要登陆网页的cookie处理,需要代理访问的代理处理等这些增强功能。
    Request – python第三方的插件,它提供更为强大的功能。
    这里选用urllib2这个简单的模块来实现网页的下载。

网页下载器---urllib2
    第一种:最简洁的方法
        给定一个url,我们将其传送给urllib2.urlopen()方法,可以实现网页的下载。
        首先我们import urllib2模块,然后我们可以使用urllib2的urlopen()方法,给定一个url字符串实现网页的下载,
        返回的内容我们传送给response对象,然后我们可以使用response的getcode方法来获取一个状态码,根据这个状态
        码来判断我们的请求是否成功。同时,我们可以使用response的read()方法来读取下载好的内容。
    对应代码:
        import urllib2
        #直接请求
        response = urllib2.urlopen(‘http://www.baidu.com‘)
        #获取状态码,如果是200表示获取成功
        print response.getcode()
        #读取内容
        Cont = response.read()

    第二种:我们可以增强处理
        添加data---我们可以向服务器提交用户输入的数据。
        添加http header---我们可以向服务器提交http的头信息。
        现在我们有三个参数:url、data、header,我们将这三个参数传送给urllib2的Request类,生成一个request对象。
        然后我们仍然使用urllib2的urlopen方法,以request作为参数发送网页请求。

        首先import urllib2,然后我们用urllib2的Request以url作为参数生成一个request对象,然后我们使用request的
        add_data方法向服务器添加用户的数据。比如说我们提交a这个数据下值为1。也可以使用add_header来添加http头信息,
        这里我们将我们的爬虫伪装成一个mozilla浏览器,然后使用urllib2的urlopen方法,以request作为参数来提交网页下载请求。

    对应代码:
        import urllib2
        request = urllib2.Request(url)
        #添加数据
        request.add_data(‘a‘,‘1‘)
        #添加http头信息
        request.add_header(‘User-Agent‘,‘Mozilla/5.0‘)
        #发送请求获得结果
        response = urllib2.urlopen(request)
        

    第三种方法:添加特殊情景的处理器
    举几个例子:
        有些网页需要用户登录才能访问,我们需要添加cookie处理,这里使用HTTPCookieProcessor。
        有些网页需要代理才能访问,我们使用ProxyHandler。
        有些网页它的协议使用HTTPS加密访问的,我们使用HTTPSHandler。
        还有些网页它的url存在相互自动的跳转关系,我们使用HTTPRedirectHandler来进行处理。

        这些handler,我们将其传送给urllib2的build_opener方法,来创建一个opener对象。
        然后我们给urllib2的install_opener这个opener对象,这样urllib2这个模块就具有了这些场景的处理能力,
        然后我们仍然使用urllib2的urlopen方法以url作为参数或者request实现网页的下载。

    我们增强cookie处理
        首先import urllib2,cookielib这两个模块,然后创建一个CookieJar()来存储我们的cookie数据,
        然后我们使用urllib2 的HTTPCookieProcessor,以刚创建的cookiejar作为参数生成一个handler。
        将这个handler传送给urllib2的build_opener方法来生成一个opener对象,然后我们给urllib2的
        install_opener来增强这个处理器,然后我们仍然使用urllib2的urlopen方法请求url或者request实现网页的下载。
    对应代码:
        import urllib2,cookielib
        #创建cookie容器
        Cj=cookielib.CookieJar()
        #创建一个opener
        opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(Cj))
        #给urllib2安装opener
        urllib2.install_opener(opener)
        #使用带有cookie的urllib2访问网页
        response = urllib2.urlopen(‘http://www.baidu.com‘)
        print response.getcode()    
    
时间: 2024-11-03 21:09:31

Python 开发轻量级爬虫05的相关文章

Python 开发轻量级爬虫02

Python 开发轻量级爬虫 (imooc总结02--爬虫简介) 爬虫简介 首先爬虫是什么?它是一段自动抓取互联网信息的程序. 什么意思呢? 互联网由各种各样的的网页组成,每一个网页都有对应的url,而url页面上又有很多指向其它页面的url,这些url之间相互指向的关系, 就形成了一个网状,这就是互联网. 正常情况下,我们使用人工的方式,从互联网上获取我们需要的感兴趣的信息.那有没有一种方法,我们设定了一个主题,设定一个感兴趣的目标, 可以自动从互联网上获取我们所需要的数据呢?这就是爬虫. 爬

Python 开发轻量级爬虫03

Python 开发轻量级爬虫 (imooc总结03--简单的爬虫架构) 现在来看一下一个简单的爬虫架构. 要实现一个简单的爬虫,有哪些方面需要考虑呢? 首先需要一个爬虫调度端,来启动爬虫.停止爬虫.监视爬虫的运行情况. 在爬虫程序中有三个模块.首先url管理器来对将要爬取的url和已经爬取过的url这两个数据的进行管理. 从url管理器中取出一个待爬取的url将其传送给网页下载器,下载器将指定的网页下载下来存储成一个字符串,这个字符串会传送给网页解析器进行解析, 一方面会解析出有价值的数据,另一

Python 开发轻量级爬虫01

Python 开发轻量级爬虫 (imooc总结01--课程目标) 课程目标:掌握开发轻量级爬虫 为什么说是轻量级的呢?因为一个复杂的爬虫需要考虑的问题场景非常多,比如有些网页需要用户登录了以后才能够访问,有些网页是 使用了Ajax异步加载的内容,这些网页的抓取就会比较复杂. 这里只会考虑不需要登录的静态加载网页的抓取. 课程包含以下内容: 1.爬虫简介 介绍爬虫是什么?它实现了什么功能? 2.简单爬虫架构 介绍简单的爬虫架构,架构中包含了哪些模块,这些模块怎么组装在一起完成整个爬取任务的.但该架

Python 开发轻量级爬虫07

Python 开发轻量级爬虫 (imooc总结07--网页解析器BeautifulSoup) BeautifulSoup下载和安装 使用pip install 安装:在命令行cmd之后输入,pip install BeautifulSoup4 BeautifulSoup语法 分为三个部分. 首先根据下载好的html网页字符串,我们创建一个BeautifulSoup这个对象,创建这个对象的同时就将整个文档字符串下载成一个DOM树. 然后根据这个dom树,我们就可以进行各种节点的搜索,这里有两个方法

Python 开发轻量级爬虫08

Python 开发轻量级爬虫 (imooc总结08--爬虫实例--分析目标) 怎么开发一个爬虫?开发一个爬虫包含哪些步骤呢? 1.确定要抓取得目标,即抓取哪些网站的哪些网页的哪部分数据. 本实例确定抓取Python百度百科词条页面以及相关词条页面的标题和简介. 2.分析这个目标,即需要确定抓取这些网站数据的策略. 有三部分需要分析. 1)需要分析这些目标页面的url格式,用来限定我们要抓取页面的范围. 如果这个范围不进行限定的话,我们的爬虫就会抓取互联网上很多不相关的网页,造成资源的浪费. 2)

Python 开发轻量级爬虫04

Python 开发轻量级爬虫 (imooc总结04--url管理器) 介绍抓取URL管理器 url管理器用来管理待抓取url集合和已抓取url集合. 这里有一个问题,遇到一个url,我们就抓取它的内容,为什么还要对url进行管理呢? 是为了防止重复抓取.防止循环抓取. 我们都知道,每一个网页都有很多指向其它网页的url,其它网页的url也会指向本网页.这样不同url之间就存在一种循环指向的问题. 如果不对这些url进行管理,那么我们的爬虫就在循环不断抓取这两个url,形成一个死循环.重复抓取.循

Python 开发轻量级爬虫06

Python 开发轻量级爬虫 (imooc总结06--网页解析器) 介绍网页解析器 将互联网的网页获取到本地以后,我们需要对它们进行解析才能够提取出我们需要的内容. 也就是说网页解析器是从网页中提取有价值数据的一种工具,对于搜索引擎来说它会提取出网页所有的url,用于后续的访问. 但是,对于我们定向爬虫来说,除了提取出待爬取的url之外,会提取出我们感兴趣的想要的有价值的数据. 也就是说,网页解析器会以下载好的HTML网页字符串作为输入,然后提取出有价值的数据和新的待爬取的url列表. Pyth

python开发轻量级爬虫

课程目标: 课程内容: 爬虫简介 爬虫:一段自动抓取互联网信息的程序 简单爬虫架构 爬虫调度器 URL管理器. 网页下载器(urllib2). 网页解析器(BeautifulSoup4) 网页生成器 完整实例 爬取百度百科1000个页面的数据 null

Python 开发简单爬虫 - 基础框架

1. 目标:开发轻量级爬虫(不包括需登陆的 和 Javascript异步加载的) 不需要登陆的静态网页抓取 2. 内容: 2.1 爬虫简介 2.2 简单爬虫架构 2.3 URL管理器 2.4 网页下载器(urllib2) 2.5 网页解析器(BeautifulSoup) 2.6 完整实例:爬取百度百科Python词条相关的1000个页面数据 3. 爬虫简介:一段自动抓取互联网信息的程序 爬虫价值:互联网数据,为我所用. 4. 简单爬虫架构: 运行流程: 5. URL管理器:管理待抓取URL集合