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

  • 相关阅读:
    收集一些dos网络配置命令,从新获取ip刷新dns
    多个线程访问共享对象和数据的方式
    Oracle rownum 分页, 排序
    ORACLE中用rownum分页并排序的SQL语句
    CentOS 6.5安装MongoDB 2.6(多yum数据源)
    【编程练习】收集的一些c++代码片,算法排序,读文件,写日志,快速求积分等等
    java枚举使用详解
    PHP+MySQL动态网站开发从入门到精通(视频教学版)
    Premiere Pro CS6标准教程
    黑客攻防:实战加密与解密
  • 原文地址:https://www.cnblogs.com/hany-postq473111315/p/12686857.html
Copyright © 2011-2022 走看看