• 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))

      

  • 相关阅读:
    激活函数
    深度学习各种环境问题积累
    读研期间如何确定论文方向?欢迎批评
    英文论文如何看?转自知乎
    最小函数依赖
    范式
    数据库中的无损连接分解和是否保持函数依赖的判定
    无损连接性、保持函数依赖1
    用CMD杀死进程
    读取properties文件
  • 原文地址:https://www.cnblogs.com/lynhou/p/8398241.html
Copyright © 2020-2023  润新知