zoukankan      html  css  js  c++  java
  • 零基础自学用Python 3开发网络爬虫(五): 使用第三方模块快速抓取与解析

    在前面的四篇文章中, 我们一直采用 python 3 自带的 urllib  模块来抓取网页, 然后用 re 模块来处理抓取到的数据. 这次我们使用 Requests 库来代替 urllib, 用 BeautifulSoup 来代替 re 模块.

    对于这两个模块来说, 学习使用它们的最好方法是看官方文档, 这两个模块的官方文档都有中文版(翻译的不是很完整).

    在 Windows 下如果安装了 Python3, 那么在 cmd 下直接可以通过 pip 来安装这两个模块, 命令如下:

    在 Ubuntu 下安装方法如下:

    然后我们运行 Python3, 试一下是否能把这两个模块 import 进来, 就知道是否安装成功了:

    Requests Module

    Requests 是 Python 界大名鼎鼎的一个网络库, 其设计哲学是为人类而设计, 所以他提供的功能都非常的人性化. 他的方便对我而言主要有两大点:

    • 对 GET 和 POST 方法的封装做的很好, 自动处理了编码等问题;
    • 默认开启了 Cookies 处理, 在处理需要登录的问题上面非常方便.

    Requests 的方便之处不止这两点, 还提供了诸如标准登录接口之类的功能, 我们暂时用不上.

    总而言之, 对于使用过 urllib 的我们来说, 用 requests 会感觉我们之前生活在石器时代. 第三方库的强大就在于这里, 这也是 Python 这么火的重要原因.

    BeautifulSoup Module

    BeautifulSoup 大大方便了我们对抓取的 HTML 数据的解析, 可以用tag, class, id来定位我们想要的东西, 可以直接提取出正文信息, 可以全文搜索, 同样也支持正则表达式, 相当给力.

    小试牛刀

    我们随便抓取一个页面, 然后用 soup 来解析一下试试他的威力:

    我们十分轻松的获得了全文内容以及所有链接.

    重访知乎

    在上一篇文章中, 我尝试使用 urllib 和 re 获取了知乎登录页面的 _xsrf 参数, 这次我们通过这两个新的模块再试一次.

    打开浏览器隐身模式, 打开知乎网, 来到登录界面, 查看源代码, 搜索 xsrf 字样, 得到如下一行:

    于是我们只要两行代码就能搞定:

    第三方库就是这么好用!

    原文出处: Jecvay Notes (@Jecvay)   

  • 相关阅读:
    C# 抽象(3)
    C# 抽象(2)
    C# 抽象
    将 varchar 值 'ACCE5057EC423F7C' 转换成数据类型 int 时失败
    处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表
    方法调用 Controller的Action 参数
    A problem has been detected and windows has been shut down to prevent damage to your computer.他么啥意思?看这里!【蓝屏】
    自己搭建了一个简单实用的Web版记事本
    GRPC
    Ocelot Consul
  • 原文地址:https://www.cnblogs.com/bfyin/p/6377098.html
Copyright © 2011-2022 走看看