爬虫流程复习

爬取数据之后:
    新闻聚合阅读器
    最爆笑故事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

原文地址:https://www.cnblogs.com/hany-postq473111315/p/12686857.html