zoukankan      html  css  js  c++  java
  • Python 开发轻量级爬虫08

    Python 开发轻量级爬虫

    (imooc总结08--爬虫实例--分析目标)

    怎么开发一个爬虫?开发一个爬虫包含哪些步骤呢?

    1.确定要抓取得目标,即抓取哪些网站的哪些网页的哪部分数据。
    本实例确定抓取Python百度百科词条页面以及相关词条页面的标题和简介。
    
    2.分析这个目标,即需要确定抓取这些网站数据的策略。
    有三部分需要分析。
    1)需要分析这些目标页面的url格式,用来限定我们要抓取页面的范围。
        如果这个范围不进行限定的话,我们的爬虫就会抓取互联网上很多不相关的网页,造成资源的浪费。
    2)我们需要分析要抓取得数据格式。
        在本实例中就要分析,每一个词条页面中标题和简介。这两个数据在标签中的格式。
    3)分析页面的编码。
        在我们代码的解析器这部分,需要指定网页的编码,才能够正确的解析。在分析完目标格式以后,
    我们进行代码的编写。在代码的解析器这部分,就需要使用到前面分析目标这个步骤所得到的抓取策略结果。
    
    3.执行爬虫,进行数据的抓取。
    
    从这些步骤中,我们可以看到分析目标,即制定抓取目标数据的策略是非常重要的一部分。打开我们爬虫的
    入口页,也就是python百度百科词条页面。
    
    我们来分析一下抓取这个页面以及相关页面的数据,它的抓取策略是什么?
    

    首先这个页面的url是 http://baike.baidu.com/view/21087.htm

    我们来看一下,相关词条页面的url是什么形式?
        在这个页面中,任意的词条之上,右键审查元素,可以看到都是/view/xxxx.htm,这是一个不完整的url,
    在代码中需要在其前面加上baike.baidu.com,把它拼成一个完整的url,才能进行后续的访问。这就是我们得
    到的url格式。
    然后,我们来看一下要抓取的标题和简介数据标签格式?
        首先我们在python标题上右键审查元素?简介上右键?查看编码格式?通过右键审查元素这种方式,我们就
    得到了抓取python以及相关词条网页的url格式、数据格式、网页编码,即得到了抓取这些网站数据的抓取策略。
    
    目标:百度百科python词条相关词条网页 – 标题和简介
    

    入口页: http://baike.baidu.com/view/21087.htm

    url格式:
        词条页面url:/view/125370.htm
    数据格式:
        标题:
            <dd class="lemmaWgt-lemmaTitle-title">
            <h1>Python</h1>
            </dd>
        简介:
            <div class="lemma-summary" label-module="lemmaSummary"></div>
        页面编码:utf-8
    以上就是我们获得抓取python和相关词条网页的抓取策略,这里需要提醒大家的是,每一个互联网的网站
    都会不停升级它的格式。作为一个定向爬虫来说,如果一个网站的格式发生了升级,我们的抓取策略随即升
    级。
    本实例给出的代码,如果运行出错的话可能是网站的格式发生了升级,我们需要打开目标网站,重新制定新
    的策略,修改代码后才能够重新运行。
    
    调度程序
        编写实例代码,爬取百度百科python词条页面以及相关1000个页面数据。
    创建一个 baike_spider来存放python代码,创建所需要的模块。
    
    创建spider_main.py  -- 爬虫的总调度程序
    url_manager  -- url管理器
    html_downloader – 下载器
    html_parser – 解析器
    html_outputer
        – 本代码将所有搜集好的数据写出到一个html页面中,打开一个页面就可以看到所有已经爬取好的数据
    
    spider_main.py
        爬虫总调度程序,会以一个入口的url作为参数来爬取所有的相关的页面。
    编写main函数,在main函数中,设置下要爬取的入口url  http://baike.baidu.com/view/21087.htm
    创建一个obj_spider = SpiderMain()
    
    首先我们将入口url添加到url管理器,url管理器中已经有了待爬取的url。
    当url管理器已经有了待爬取的url的时候,获取一个待爬取的url。
    获取之后,我们启动一个下载器下载这个页面, 结果存储在html_cont中。
    下载好了页面。我们调用解析器解析这个页面数据,得到新的url列表和新的数据。
    
    解析器
        我们传入两个参数,当前爬取的url和下载好的页面数据。
        解析出来的两个数据 url和数据,进行分别处理。
        将url添加进url管理器,将数据输出并收集。
        这样如果有一个待爬取的url,我们的爬虫就能够爬取所有的url。
    最后调用输出收集好的数据。
  • 相关阅读:
    利用栈计算后缀式
    中缀式转换为后缀式(逆波兰式)方法
    JAVA字符串首字母大小写转换(截取转换+移动ASCII编码)
    VSCode格式化代码后,设置代码不自动换行
    oracle连接不上,提示监听服务不可用的解决办法
    壹周立波秀
    欣慰,举手之力,帮助一个老同学恢复了博士论文文档
    开发中的思维转换也是一种创新-思维创新
    电脑借液晶电视显示器出现雪花点的另类解决办法
    邮箱已满解决办法
  • 原文地址:https://www.cnblogs.com/billyzh/p/5841030.html
Copyright © 2011-2022 走看看