【高级特性】54、网络爬虫【高级特性】54、网络爬虫

作者 : 郭然 本文共1319个字,预计阅读时间需要4分钟 发布时间: 2021-08-25 共162人阅读

目录
一、搜索引擎蜘蛛
二、requests库
三、Beautiful Soup
四、爬虫的基本流程

一、搜索引擎蜘蛛

  • 爬虫是按照一定规则,自动地提取并保存网页中信息的程序
    蜘蛛沿着网络抓取猎物
    通过一个节点之后,顺着该节点的连线继续爬行到下一个节点,最终爬完整个网络的全部节点

  • 通过向网站发起请求获取资源,提取其中有用的信息

二、requests库

  • Python实现的一个简单易用的HTTP库
    支持HTTP持久连接和连接池、SSL证书验证、cookies处理、流式上传等

  • 向服务器发起请求并获取响应,完成访问网页的步骤

  • 简洁、容易理解,是最友好的网络爬虫库

  • http请求类型
    requests.request():构造一个请求
    requests.get():获取HTML网页
    requests.head():获取HTML网页头信息
    requests.post():提交POST请求
    requests.put():提交PUT请求
    requests.patch():提交局部修改请求
    requests.delete():提交删除请求
    requests.options():获取http请求

  • 返回的是一个response对象

  • response对象
    包含服务器返回的所有信息,例如状态码、编码形式、文本内容等;也包含请求的request信息
    .status_code:HTTP请求的返回状态
    .text:HTTP响应内容的字符串形式
    .content:HTTP响应内容的二进制形式
    .encoding:(从HTTP header中)分析响应内容的编码方式
    .apparent_encoding:(从内容中)分析响应内容的编码方式

image.png
image.png
  • 定制请求头
    requests的请求接口有一个名为headers的参数,向它传递一个字典来完成请求头定制
  • 设置代理
    一些网站设置了同一IP访问次数的限制,可以在发送请求时指定proxies参数来替换代理,解决这一问题
image.png

三、Beautiful Soup

  • 页面解析器
    使用requests库下载了网页并转换成字符串后,需要一个解析器来处理HTML和XML,解析页面格式,提取有用的信息

  • 解析器类型

    image.png
  • 搜索方法

find_all(name,attrs,recursive,string,**kwargs)
返回文档中符合条件的所有tag,是一个列表

find(name,attrs,recursive,string,**kwargs)
相当于find_al1()中limit=1,返回一个结果

name:对标签名称的检索字符串

attrs:对标签属性值的检索字符串

recursive:是否对子节点全部检索,默认为True
string:…>中检索字符串

**kwargs:关键词参数列表

四、爬虫的基本流程

  • 分析网页结构

    image.png
  • 爬取页面
    通过requests库向目标站点发送请求,若对方服务器正常响应,能够收到一个response对象,它包含了服务器返回的所有信息

    image.png
  • 解析页面
    HTML代码-网页解析器
    Json数据-json模块,转换成Json对象
    二进制数据一以wb形式写入文件,再做进一步处理此处使用bs4进行解析

    image.png
赞赏

微信赞赏支付宝赞赏

VIP部落提供编程技术、教育培训、优惠购物以及各类软件和网站源码、模板等资源下载。
VIP部落 » 【高级特性】54、网络爬虫【高级特性】54、网络爬虫

常见问题FAQ

提供最优质的资源集合

立即查看 了解详情