为了账号安全,请及时绑定邮箱和手机立即绑定

使用Python2.7写网络爬虫-1

标签:
Python
爬虫基本架构
  • 一个网络爬虫的简单架构包括
    1.爬虫调度端:开启爬虫程序
    2.爬虫程序(其中包括三部分)
    URL管理器 管理待爬取的和已爬取的URL
    网页下载器 把爬取的网页下载到本地,储存成一个字符串
    网页解析器 把储存的字符串送给解析器进行解析
    3.数据整合分析
    得到 1)有价值的数据
    2)网页中包含的其他网页的URL,再把它们补充进URL管理器中
    图片描述

  • 这个简单爬虫架构的运行流程(如下图)
    图片描述
    调度器是爬虫程序中三个子程序(管理器,下载器,解析器)的直接交互对象,每次运行一个子程序,会把结果返回给调度器,调度器在发送相应指令给该子程序。
    所以调度器是爬虫运行的推动程序,控制着整体的进程,爬取过程就是调度器不断运行,不断按照次序激活相应子程序的循环过程

  • URL管理器简介
    功能:管理两类URL的集合
    1)待抓取的URL
    2)已抓取的URL
    作用:防止重复抓取和循环抓取
    图片描述
    实现方式
    -----把两类URL集合存储在什么地方?
    1)直接存到python内存中
    2)存储在关系型数据库(mySQL)中
    3)存储在缓存数据库redis中
    大型企业级常用redis,小型公司或个人用mySQL或直接用内存即可
    图片描述
网页下载器实现方式(urlib2)
  • 网页下载器简介
    图片描述
  • 两种常用网页下载器
    图片描述
    下面的内容都是python官方的urllib2模块使用方法(urllib2是基础,前期练习阶段先抓住这个库学习,学通了以后再进军更强大的Requests库)

  • 第一步:最基本的功能--通过URL直接抓取
    urllib2以urlopen函数的形式提供了一个非常简单的接口
    1.直接请求方式(最简单的)
    ----用urllib2.open()方法直接打开
    图片描述
    对应代码实例
    import urllib2  
    response = urllib2.urlopen('http://www.baidu.com/')  
    html = response.read()  
    print html 

    2. 发送间接请求
    用一个Request对象来映射你提出的HTTP请求,即用你要请求的地址创建一个Request对象。通过调用urlopen并传入Request对象,将返回一个相关请求response对象,这个应答对象如同一个文件对象,所以你可以在Response中调用.read()。

import urllib2    
req = urllib2.Request('http://www.baidu.com')    
response = urllib2.urlopen(req)    
the_page = response.read()    
print the_page 
  • 第二步:增强处理
    1.发送data表单数据
    2.设置Headers到http请求

  • 第三步:添加特殊情景处理器
点击查看更多内容
11人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消