关联工具 / 知识

  • **requests**
  • **beautiful soup4**/**bs4**
    • 用来快速从 html 网页中提取数据
  • **lxml**

    • 解析库,比bs4使用的 py 自带的解析器更强更快
  • 正则表达式

    • 可以更快更优雅地找到需要的内容

      基本流程

      简单爬虫的基本流程大概就是三步:
  1. 请求网页(并且获得数据)
  2. 处理和分析数据(筛选出我们需要的内容)
  3. 储存数据

    请求网页

    这里使用 python 的第三方库 requests ,利用 python 的包管理工具 pip 安装:
  • pip3 install requests

接下来就可以在代码中import requests了。

requests 库的学习笔记

requests 库
有了 requests 库,我们就有了和网站交互的能力。
在本文中,我们用resp来作为存储 response 的对象,通过检查状态码来判断请求是否成功。

需要验证才能访问的内容

有时候,网页的一些内容需要“登录”状态才能访问,而这种情况下我们需要模拟这个“登录”状态。
简单情况下,我们只需要在浏览器中获取登录以后发送的所有报文中,在header中的cookie,并把它塞到requests的对应请求函数中即可。当然,这种方法并不是通用的。如果网站验证所使用的cookie具有时效性,那我们就需要用别的手段来实时获取cookie,如模拟登录等。
但即使我们有了模拟登录的手段,由于requests中发送的请求是彼此独立的,即不存在继承关系或者关联性,就好比你在一个浏览器里发送一个请求以后又换了一台电脑。这时登录就不再具有意义,所以我们需要使用requests中的session来消除这个问题。

处理和分析数据

通过上一步,我们已经能够捞到目标网页上的数据了,现在就需要从这片汪洋大海中找到我们需要的东西并做进一步处理,在这个过程中我们会用到bs4
bs4 库
bs4更多的是为了处理html数据而使用的,但在某些动态修改的网页中,获取信息后更新网页这一步是在本地完成的,这时候用bs4去解析会稍显困难。
比如,我们需要用POST请求第二页的信息,这时网页后端可能会发送包含第二页信息JSON数据的响应,这时候我们可以选择直接解析JSON来获取信息。

参考网站