zoukankan      html  css  js  c++  java
  • 爬虫流程复习

    爬取数据之后:
        新闻聚合阅读器
        最爆笑故事APP 
        最漂亮美女图片网
        图书价格对比网
        Python技术文章大全
    设置爬虫终端:
        URL 管理器 -> 网页下载器 -> 网页解析器 -> 产生价值数据
        URL 管理器判断爬取网页链接
    流程:
        调度器询问 URL 管理器,是否存在要爬取的 URL 
            URL 管理器返回 是或否
        调度器 从 URL 管理器中 取出一个 URL 
            URL 管理器 将 URL 传递给调度器
        调度器将 URL 发送到下载器
            下载器将 URL 下载的内容传递给调度器
        调度器将 URL 下载的内容传递给解析器
            解析器解析后传递给调度器
        此时可以收集价值数据 调度器再将需要爬取的 URL 传递给 URL管理器 一直到没有需要爬取的 URL 
    URL 管理器:
        管理待爬取的 URL 集合和已经爬取的 URL 集合
        使用管理器是为了防止重复抓取和防止重复抓取一个 URL
    URL 功能:
        添加新的 URL 到待爬取的集合中
            确定待添加的 URL 是否在 URL 中
        获取待爬取的 URL 
            将 URL 从待爬取的移动到已爬取的集合中
            判断是否还有待爬取的数据
    URL 管理器实现方式:
        将 待爬取的 和 已爬取的 URL 存储在集合中 
            set()
        将 URL 存储在 关系数据库中,区分 URL 是待爬取还是已经爬取
            MySQL  urls(url,is_crawled)
        缓存数据库 redis
    
    网页下载器:
        将 URL 对应的网页转换为 HTML 数据
            存储到本地文件或者内存字符串中
            requests 、 urllib 库实现下载
        特殊情景处理器:
            需要使用 Cookie 访问时:HTTPCookieProcessor
            需要使用 代理 访问时:ProxyHandler
            需要使用 加密 访问时:HTTPHandler
            网页存在跳转关系访问时:HTTPRedirectHandler
    网页解析器:
        从网页提取有价值的数据
        HTML 网页文档字符串
            提取出价值数据
            提取出新的 URL 列表
        正则表达式 -> 模糊匹配
            文档作为字符串,直接匹配
        html.parser 
        BeautifulSoup -> 可以使用 html.parser  和 lxml
            从 HTML 和 XHTML 中提取数据
            语法:
                创建 BeautifulSoup 对象
                    搜索节点 findall find 
                    访问节点(名称,属性,文字)
    
        lxml
        ->结构化解析
            DOM 树
                进行上下级的遍历
            html 
                head 
                title
                文本
            body
                a
                    href
                        文本
                div
                    文本
    爬虫:
        确定目标
        分析目标
            URL 格式
                数据的链接
                数据的格式
                网页编码
        编写代码
        执行爬虫

    2020-04-12

  • 相关阅读:
    leetcode 268. Missing Number
    leetcode 189. Rotate Array
    leetcode 118. Pascal's Triangle 、119. Pascal's Triangle II 、120. Triangle
    HDU高精度总结(java大数类)
    一起talk C栗子吧(第八十七回:C语言实例--使用管道进行进程间通信概述)
    iOS敏捷开发之道,经常使用的宏定义总结
    360 网络攻防 hackgame 解题报告(通关)
    打通B/S与C/S !让HTML5 WebSocket与.NET Socket公用同一个服务端!
    数列求和
    指尖上的电商---(11)Windows平台部署SolrCloud
  • 原文地址:https://www.cnblogs.com/hany-postq473111315/p/12686857.html
Copyright © 2011-2022 走看看