享受每一天,Just Enjoy !

0%

爬虫基础原理 Zero to Hero (一)

1.什么是爬虫?

网络爬虫(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网网络机器人

本文首发于伊洛的个人博客:https://yiluotalk.com,欢迎关注并查看更多内容!!!

  • 其实通俗的来讲,本质上爬虫就是自动化的程序,自动化模拟人的操作。比如在网站上下载小说,下载图片,下载视频等等。如果让你本人下载1-2张图片可能很容易,但是如果让你下载100张甚至10000张图片的话,就一定会发狂了。所以就交给自动化的爬虫来帮你下载10000张图片!解放你的双手~
    2.浏览器获取数据过程
  • 浏览器向服务等发送httprequest请求
  • 服务器响应response
  • 浏览器解析数据
  • 展示给用户
    3.Rquest 和 Response
  • Request 包含内容

1.请求方式通常有Get Post Put Delete
2.请求URL
3.请求头
4.请求体

  • 来请求一些伊洛的个人博客 https://yiluotalk.com

  • 点击Network,查看headers

  • 注意一般服务器会对请求数据做校验,一般在请求头里面需要加user-agent

  • Response 包含内容

1.响应状态 ,状态码
2.响应头 response headers
3.响应体信息

  • 来看一下伊洛博客的返回
  • 返回的是html页面
4. 爬虫的过程
  • 通过上面我们已经比较清楚了,浏览器请求服务器到服务器响应,浏览器解析展示给用户的简单过程,那么我们爬虫的话大概分几步呢
    通常来说分为四个步骤
  • 1.爬取数据 发起http请求 (来用python代码演示下)
    可能需要爬取的数据是会有 Html文档Json格式文本图片视频,等
    1
    2
    3
    4
    5
    6
    # 伊洛Yiluo
    # https://yiluotalk.com
    >>> import requests
    >>> r = requests.get("https://yiluotalk.com")
    >>> print(r.status_code)
    200
  • 2.获取响应内容
    如上获取了响应的状态码为200
  • 3.解析内容
    解析的方式可能有很多种,后续展开讲述下
  1. 直接处理
  2. Json 解析
  3. 正则表达式
  4. 有很多好用的第三方库,比如 BeautifulSoup pyquery scrapy 还有xpath也可以
    1
    2
    3
    # 伊洛Yiluo
    # https://yiluotalk.com
    print(r.text)
  • 响应的是html文件

5.保存数据

  • 保存数据一般分为以下几种,后续展开来讲
    纯文本Json Xml关系形数据库(Mysql)非关系型数据库(Mongodb)二进制文件
    5. 找不到要爬取的数据
    由于一些网站的页面是动态获取的,所以最后你看到的页面可能是通过js渲染出来的,那么怎么来处理呢,简单的可以分为

1.分析ajax请求,json格式字符串
2.selenium webdriver 浏览器驱动
3.splash
4.pyv8ghost8

  • 这里先简单的介绍下模拟人工浏览器的方式,也就是 WEB自动化测试经常用到的,selenium ,可以翻下伊洛之前介绍selenium webdriver自动化测试的的相关文章
  • 依旧是访问 https://yiluotalk.com
  • 输入网址
  • 这样通过浏览器驱动的方式访问的就会正确的获得响应的所有信息

在这里插入图片描述

欢迎下方【戳一下】【点赞】
Author:伊洛Yiluo
愿你享受每一天,Just Enjoy !

关注公众号获取更多内容