爬虫——Day1

爬虫——Day1

  • http(超文本传输协议)

    1. 当用户在地址输入了网址,发送网络的请求是什么
    2. http的请求方式:
      1. get请求:比较便捷,但是不安全(明文申请),参数的长度有限制
      2. post请求(百度云):比较安全、参数数据整体没有限制、可以上传文件
        1. put(不完全的)、delete(删除一些信息)、head(请求头) 发送网络请求时需要把信息放到请求头里面requestheader 返回数据:response head(请求头):
          1. Accept:文本的格式
          2. Accept-Enconding :编码格式
          3. Connection:连接两端之间的连接情况(比如长连接和短链接)
          4. Cookie:是否保持在其他网站的登陆的情况(验证的时候使用的)
          5. Host:域名
          6. Referer:代表着你是从哪个网页过来的
          7. User-Agent:用户和浏览器的信息
      3. 网络请求的过程
  • 爬虫入门:使用代码模拟用户,批量的发送网络请求,批量的获取数据

    1. 爬虫的价值:买卖数据(高端领域价格比较高)、数据分析:出数据报告、流量、各种指数(阿里指数、百度指数)
  • 合法性:灰色产业

    • 政府没有法律规定爬虫是违法的,也没有法律规定爬虫是合法的
    • 公司概念:公式让你爬取数据的公司
  • 爬虫并不是可以爬取所有东西的,爬虫只能爬取用户允许爬取的东西

爬虫分类:

  1. 通用爬虫:

    • 使用各种搜索引擎

      优势:开放性 速度快

      劣势:目标不明确

      放回内容:基本上百分之九十都是客户不需要的

  2. 聚焦爬虫(学习)(不遵循robots协议)

    • 目标明确
    • 对用户的需求非常精准
    • 返回的的内容很固定

    增量式:翻页:从第一页请求到最后一页

    Deep深度爬虫:

    静态数据:html css

    动态数据:js代码,加密的js

    robots:是否允许其他爬虫(通用爬虫)爬取某些内容

    爬虫和反扒作斗争:资源对等 胜利的永远是爬虫

爬虫的工作原理

  1. 需要目标的url(找)
  2. 使用python代码发送请求获取数据(java Go)
  3. 解析获取到的数据(精确数据)
    • 找到新的目标(URL)回到第一步(自动化)
  4. 数据持久化
  5. request(第三方)
  6. 数据解析:xpath bs4
  7. 数据存取

python3(原生提供的模块):urlib.request

  • urlopen:返回一个页面类型 response对象
    1. 返回response对象
    2. response.read()
    3. bytes.decode("utf-")
  • get:传参
    1. 汉字报错:解释器Ascill没有汉字,需要使用url进行汉字转码
    2. 传参过程一般都是字符串的简单相加
  • post:
  • handle处理器的自定义
  • ulrError
posted @ 2020-02-27 21:27  小鲲18  阅读(31)  评论(0)    收藏  举报