zoukankan      html  css  js  c++  java
  • Python之爬虫的理解

    #  -*- coding: utf-8 -*-  中文用户一定先用这行来声明编码方式

    爬虫: 爬虫是自动访问互联网,并且提取数据的程序  (从网络上获取非结构化的数据,ETL将这些数据转换为结构化数据存储,然后做分析挖掘)

        爬虫的核心,是页面规律的探索和反爬机制的处理

        爬虫的价值,互联网数据为我所用

          轻量级的爬虫,是静态网页数据的抓取,是除了需要登录和Ajax异步加载之外的爬虫

    爬虫的开发: 确定目标 --- 分析目标 --- 编写代码 --- 执行爬虫

          目标网站的格式,是在不停升级的,爬虫的抓取策略也需要做相应升级

    爬虫的一般架构:

         1. 调度器  启动爬虫

       2. URL管理器  管理等待抓取URL和已经抓取URL的集合,防止循环和重复抓取

          ( 实现方式: 内存中的set集合,关系数据库的表,缓存数据库redis等)

       3. 网页下载器  爬虫的核心部分,主要是urllib/requests模块

          ( 实现方式: 无参 urlopen()+response.read(), 有参 Request()对象+urlopen()+response.read(), 各类handler+opener+install_opener()+urlopen() )

       4. 网页解析器  主要是BeautifulSoup、lxml 、html.parser、正则表达式,前三种是结构化解析,正则是模糊匹配

          (beautifulSoup,可以解析html和xml, pip install beautifulSoup4,  import bs4)

          在BeautifulSoup中,# 是id选择器, . 是css选择器

    爬虫的最终结果: json或者list

       Pandas是后续ETL主要使用的

    Python格式化输出的两种方式:

       占位符: %s  %d  %f...    print('His name is %s and he is %d year old' %('Daivd', 18))

                      print("I am %(name)s age %(age)d" % {"name": "Alex", "age": 18})

       Format方式:    print("i am {}, age {}, {}".format("seven", 18, 'alex'))

                  print("I am {0}, age {1}, really {0}".format("Steven", 18))

                  print("I am {name}, age {age}, really {name}".format(name="steven", age=18))

      

  • 相关阅读:
    git使用
    onethink常用标签的使用示例
    thinkphp中 select() 和find() 方法的区别
    CSS3Ps -Photoshop图层特效转CSS3代码
    普通公司网站代码片段合辑
    IE hack大全
    PHP四种基础算法详解:冒泡,选择,插入和快速排序法
    PHP编程效率的20个要点
    php实现AES/CBC/PKCS5Padding加密解密(又叫:对称加密)
    浏览器桌面提醒,适用于网站“新消息提醒”
  • 原文地址:https://www.cnblogs.com/lynhou/p/8398241.html
Copyright © 2011-2022 走看看