爬虫预备知识

python爬取网页数据步骤,python爬虫爬取网页数据 Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析“标签树”等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。 阅读详情

爬虫预备知识

爬虫课程中所需要的相关知识储备

概要

  • 爬虫定义、分类和流程
  • http和https

爬虫定义、分类和流程

爬虫定义

网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。

爬虫就是模拟浏览器的行为,越像越好,越像就越不容易被发现。

原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。

爬虫的分类
  1. 通用爬虫:通常指搜索引擎的爬虫
  2. 聚焦爬虫:针对特定网站的爬虫
爬虫的用途
  • 今日头条
  • 网易云音乐
  • 12306抢票
  • 网站自动投票
  • 短信轰炸
  • 等等
爬虫的流程
  1. 向起始url发送请求,并获取响应
  2. 对响应进行提取
  3. 如果提取url,则继续发送请求获取响应
  4. 如果提取数据,则将数据进行保存
robots 协议

Robots 协议:网站通过 Robots 协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,但它仅仅是道德层面上的约束 例如:淘宝的 robots 协议

总结

  • 爬虫概念:模拟浏览器发送网络请求,接收请求响应。只要是浏览器(客户端)能做的事情,爬虫都能够做。

  • 爬虫的分类:聚焦爬虫、通用爬虫

  • 爬虫的流程:

    1. 向起始 url 发送请求,并获取响应
    2. 对响应进行提取
    3. 如果提取 url,则继续发送请求获取响应
    4. 如果提取数据,则将数据进行保存

HTTP 与 HTTPS

HTTP 与 HTTPS 的概念

HTTP

概念:HTTP(超文本传输协议)是应用层上的一种客户端/服务端模型的通信协议,它由请求和响应构成,且是无状态的。
协议:协议规定了通信双方必须遵守的数据传输格式,这样通信双方按照约定的格式才能准确的通信。
无状态:无状态是指两次谅解通信之间是没有任何联系的,每次都是一个新的连接,服务端不会记录前后的请求信息。

HTTP 请求流程

图片

  1. 浏览器通过域名解析服务器(DNS)获取IP地址
  2. 浏览器先向 IP 发起请求,并获取相应
  3. 在返回的响应内容(html)中,会带有 css、js、图片等 url 地址,以及 ajax 代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应
  4. 浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css 等内容会修改页面的内容,js也可以重新发送请求,获取响应
  5. 从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改————这个过程叫做浏览器的渲染
五层网络模型
HTTP协议结构图
网络模型对应关系
  1. HTTP、RTSP、FTP -------> 应用层
  2. TCP、UDP -------> 传输层
  3. IP -------> 网络层
  4. 数据链路 -------> 数据链路层
  5. 物理介质 -------> 物理层
url 地址格式

格式说明:scheme://host[:port]/path/…/?query-string

  1. scheme:协议(例如:http, https, ftp)
  2. host:服务器的 IP 地址或者域名
  3. port:服务器的端口(如果是走协议默认端口,缺省端口80)
  4. path:访问资源的路径
  5. query-string:参数,发送给 http 服务器的数据
  6. anchor:锚(跳转到网页的指定锚点位置)
HTTP 请求
  • 请求格式
  • 案例
  • 请求方式

根据 HTTP 标准,HTTP 请求可以使用多种请求方法。

HTTP1.0 定义了三种请求方法:GET, POST 和 HEAD 方法。

HTTP1.1 新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

请求方式描述
GET请求指定的页面信息,并返回实体主体。
HEAD类似于 get 请求,只不过返回的响应中没有具体的内容,用于获取报头
POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
PUT从客户端向服务器传送的数据取代指定的文档的内容
DELETE请求服务器删除指定的页面。
CONNECTHTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS允许客户端查看服务器的性能。
TRACE回显服务器收到的请求,主要用于测试或诊断。
  • 常见请求头
请求头作用
CookieCookie
User-Agent浏览器名称
Referer页面跳转处
Host主机和端口号
Connection链接类型
Upgrade-Insecure-Requests升级为 HTTPS 请求
Accept传输文件类型
Accept-Encoding文件编解码格式
x-requested-with : XMLHttpRequestajax 请求

点击查看更多

HTTP 响应
  • 响应格式

HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行(回车符 + 换行符)和响应正文。

  • 响应头
响应头作用
Location这个头配合 302 状态码使用,告诉用户端找谁。
Set-Cookie设置和页面关联的 Cookie
Content-Type服务器通过这个头,回送数据的类型
Server服务器通过这个头,告诉浏览器服务器的类型
Content-Length服务器通过这个头,告诉浏览器回送数据的长度
Connection服务器通过这个头,响应完是保持链接还是关闭链接
  • HTTP 状态码

当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。

HTTP 状态码的英文为 HTTP Status Code。

HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP 状态码共分为 5 种类型

分类分类描述
1**信息,服务器收到请求,需要请求者继续执行操作
2**成功,操作被成功接收并处理
3**重定向,需要进一步的操作以完成请求
4**客户端错误,请求包含语法错误或无法完成请求
5**服务器错误,服务器在处理请求的过程中发生了错误
  • 常见的 HTTP 状态码:

    • 200 - 请求成功
    • 301 - 资源(网页等)被永久转移到其它 URL
    • 404 - 请求的资源(网页等)不存在
    • 500 - 内部服务器错误

点击查看更多

HTTPS
- HTTP + SSL (安全套接字层),即带有安全套接字层的超本文传输协议
- 默认端口号:443
  • HTTPS 作用

在传输过程中对数据进行加密,防止中间路由器、交换机等中间的路由设备对数据进行篡改。

  • HTTP 与 HTTPS 优缺点

HTTP 因为不需要对数据进行加密所以性能更高,但是安全性差。

HTTPS 虽然安全性高,但是因为浏览器和服务器端需要对数据进行加解密,所以占用服务器资源。

  • 当前形式

注意:目前 HTTPS 是未来主流,微信小程序,iOS 客户端,android 客户端的接口提供都需要 HTTPS 接口支持。

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方优快云官方认证二维码或者点击链接免费领取【保证100%免费】

Python网络爬虫入门篇---小白必看 1. 预备知识 学习者需要预先掌握Python的数字类型、字符串类型、分支、循环、函数、列表类型、字典类型、文件和第三方库使用等概念和编程方法。 2. Python爬虫基本流程 a. 发送请求 使用http库向目标站点发起请求,即发送一个Request,Request包含:请求头、请求体等。 Request模块缺陷:不能执行JS 和CSS 代码。 b. 获取响应内容 如果requests的内容存在于目标服务器上,那么服务器会返回请求内容。 Response包含:html、Json字符.. 阅读详情

相关推荐

Python爬虫-01 爬虫预备知识讲解

hello,最近在学习python爬虫,在此记录下学习过程,会比较系统学习和记录,有想了解爬虫的小伙伴,可以跟我一起学习,我会分层次的把爬虫给大家讲清楚,欢迎大家订阅。希望大家能够看了我的博文,不用再去看其他文章就能写出爬虫程序,满足工作和日常生活的需要,如果觉得还不错,帮忙点赞哟。 进入正题,今天第一讲,我们先讲下爬虫的预备知识 ...

汽车软件开发 526

操作html网页(网络爬虫预备知识)

1、域名和IP的关系:IP 是服务器/设备在互联网中的 “唯一地址标识”(类似身份证号),域名是为了方便人类记忆的 “别名”(类似手机号备注),本质上访问网页的核心是 “找到 IP 对应的服务器”,域名只是简化了这个过程。比如一个 IP 可以绑定多个域名(共享主机),但一个域名(不含子域名)通常只指向一个 IP(或多个 IP 做负载均衡)。1、打开视频网页,推荐凤凰网,因为很多平台都设置了限制,不让你轻松获取平台的资源。它通过标签(tags)定义网页的结构和内容,浏览器解析这些标签后渲染出可视化页面。

sunxuehai1的博客 1420

微动探测原理及仪器介绍

微动探测原理及仪器介绍 1、微动探测原理 1.1 基本理论 微动是由体波和面波组成,其中微动能量的百分之七十以上都来自于面波,并且它与体波的主要区别是在不均匀的介质中传播时面波会发生频散,而体波不存在频散现象,因此面波是微动探测的主要对象。 对于介质的弹性参数(如横波速度、层薄厚、压缩波速度、密度等),面波传播速度相对比较敏感,特别是对横波的敏感性很高,因此可以利用面波来反演横波速度。 在时间和空间上,微动信号具有以下特性:高度变化、无规律性、无重复性等,有研究发现全世界各处记录的微动信号都有相似

zw461450141的博客 1万+

爬虫必须得会的预备知识

作者 |CriseLYJ来源 | GitHub摘要:爬虫所需要的相关知识储备。这两天看到一个很不错的爬虫教程库,作者宣称能从从零到一教学会爬虫,课程内容包含 js逆向,...

苏克的博客 495

复合材料热压罐固化残余应力仿真与优化

复合材料在热压罐固化过程中产生的残余应力是影响构件性能的关键因素,尤其在航空航天和风电叶片等高端制造领域。通过多物理场耦合仿真技术,可以精确预测残余应力分布,优化工艺参数。顺序耦合方法分步求解热分析和结构分析,既保证了计算精度,又控制了成本。Abaqus等有限元工具在此过程中发挥重要作用,通过合理设置边界条件、材料属性和接触关系,能够有效模拟温度场和应力场的相互作用。工程实践中,这种仿真方法已成功应用于无人机机翼、卫星支架等实际项目,显著降低了固化变形和微裂纹风险。

weixin_33146151的博客 216

手把手教你用TJA1145A实现CAN节点智能唤醒(含数据帧过滤技巧)

本文详细介绍了如何使用TJA1145A收发器实现CAN节点的智能唤醒功能,包括数据帧过滤技巧和超低功耗设计。通过硬件级帧过滤和双条件唤醒机制,TJA1145A在保持微安级休眠电流的同时,能对特定报文做出毫秒级响应,显著提升电池供电设备的续航能力。

weixin_28721917的博客 251

爬虫得会的预备知识

爬虫定义 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。 爬虫就是模拟浏览器的行为,越像越好,越像就越不容易被发现。 原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。 爬虫的分类 通用爬虫:通常指搜索引擎的爬虫 聚焦爬虫:针对特定网站的爬虫 爬虫的用途 今日头条 网易云音乐...

KHOST的博客 351

【入门AUTOSAR网络管理测试】CANoe测试T_WakeUp时间

随着智能电动汽车行业的快速发展,目前AUTOSAR网络管理也得到了广泛应用,AUTOSAR网络管理测试也是汽车网络测试中非常重要的环节,NM问题导致的汽车ECU不能唤醒、电瓶亏电等问题,对于新入门AUTOSAR网络管理测试的同学不清楚如何开展测试,那么本章节就主要给大家介绍网络管理中T_WakeUp时间如何测试。【入门AUTOSAR网络管理测试】AUTOSAR网络管理规范需求解读。

测试领域技术分享 2135

Python爬虫(一)—爬虫的预备知识(爬虫概念、HTTP与HTTPS、请求与响应)

这篇博文,主要是结合CriseLYJ/Python-crawler-tutorial-starts-from-zero内关于Python爬虫的预备知识进行记录的。 爬虫的定义、分类和流程 爬虫定义 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。 爬虫就是模拟浏览器的行为,越像越好,越像就越不容易被发现。 原则...

luoz_java的博客 603

基于全局和局部接受性因果特征的广义学习模型,用于在线增量机械故障诊断

本文提出了一种**因果广义学习模型(CBLM)**,用于在线增量机械故障诊断。该模型结合了**全局因果特征**(时域、频域、故障特征频率均值)和**多尺度局部因果特征**(通过扩张卷积提取),构建了一个具有**增量学习能力**的广泛学习系统(BLS)。CBLM支持**结构增量学习**(增加增强节点)和**样本增量学习**(动态更新权重),无需重新训练整个模型,显著提高了计算效率和诊断精度。在两个滚动轴承数据集上的实验表明,CBLM在诊断准确性和训练时间上均优于传统深度学习模型,适用于在线实时故障诊断。

huanghm88的专栏 387

DataCastle-租金预测

ID:编号;时间:房屋信息采集的时间;小区名:房屋所在小区,已脱敏处理;小区房屋出租数量:小区出租房屋数量,已脱敏处理;楼层:0、1、2分别表示楼层低,中,高;总层数:房屋所在建筑的总楼层数,已脱敏处理;房屋面积:房屋面积数值,已脱敏处理;房屋朝向:房屋的朝向;居住状态:房屋的居住状态,表示是否已出租或居住中,已脱敏处理;卧室数量:户型信息,数字表示卧室的个数;卫的数量:户型信息,数字表示卫生间的个数;厅的数量:户型信息,数字表示厅的个数;

优快云 精品推荐 3457

【Python爬虫】爬虫预备知识

本文章将讲述爬虫以及学习爬虫需要知道的一些常见知识包括:网络结构、网络请求、抓包工具等

Eliminateeeeee的博客 1054

【产品经理修炼之道】- 优惠券系统从入门到精通(二)

在电商平台中,优惠券的使用场景与频次都很高。那么如何做好一个优惠券系统呢?本文总结了相关流程和设计思路,希望对你有所帮助。上一篇与大家分享了架构中的前端应用、生命周期、优惠券管理中OpenAPI 、基础系统,今天继续与大家分享架构图中优惠券模板部分。

xiaoli8748的专栏 1292

python3 爬虫_Python3网络爬虫(一):利用urllib进行简单的网页抓取

点击蓝色字免费订阅,每天收到这样的好信息前言:最近有不少粉丝关注本公众号。并且我已经成功开通了流量主同时会赚一点点广告费,我打算每个月把这部分钱拿出来给大家买点书刊,算是给大家一点福利吧。大家想买什么书扫描下方的加他拉你加群。最后,非常感谢大家的关注。运行平台:WindowsPython版本:Python3.xIDE:Sublime text3转载请注明作者和出处:http://blog...

weixin_39819138的博客 284

基于YOLOv11的农作物病虫害检测系统设计与实现

我们使用公开的IP102病虫害数据集作为基础,该数据集包含102种病虫害类别,覆盖水稻、小麦、玉米等多种主要农作物。图像数量:75,222张类别数:102图像分辨率:从640×480到4000×3000不等标注格式:PASCAL VOC格式此外,我们还收集了部分田间实际拍摄的图像以增强模型泛化能力。

YOLO 595

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python网络爬虫一:Request库入门

Python网络爬虫入门篇:Request库入门 这里写目录标题Python网络爬虫入门篇:Request库入门1.预备知识2. Python爬虫基本流程3. Requests库入门3.1 Requests库安装和测试3.2 Requests库的7个主要方法3.3 Requests库的get()方法3.5 理解Response的编码3.6 理解Requests库的异常3.7 爬取网页的通用代码框架...

qq_34964418的博客 841

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

小马的爬虫之路——之预备知识

爬虫是指一种自动访问互联网并提取数据的程序或脚本,通常用于收集网页信息、监测网站变化或进行数据分析。

weixin_46538537的博客 1312

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Python3网络爬虫(一):利用urllib进行简单的网页抓取

原作者及原文链接: Jack-Cui,https://blog.youkuaiyun.com/c406495762/article/details/58716886 运行平台:Windows Python版本:Python3.x IDE:Sublime text3 一直想学习Python爬虫的知识,在网上搜索了一下,大部分都是基于Python2.x的。因此打算写一个Python3.x的爬虫笔记,以便后续回...

圆方圆python学院的博客 389

python网络爬虫自学篇(预备篇)

python网络爬虫自学篇(预备篇) 一.学习环境 Anaconda python Anacgonda python下载网址 pycham pycham下载网址 为什么会选择Anaconda python和pycham呢? 1.Anaconda python 集成了学多的第三方库,这样可以在使用时较小概率地下载第三方库。也省去了不少的麻烦。如果你像小林子一样喜欢偷懒的话是不错的选择。 2.pyc...

qq_45138868的博客 228

Python 技能树测评

python技能树是优快云提供的系统化,面向实战的学习环境。 优势: 首先,python技能树界面非常简洁,没有华而不实的东西,给人干净舒适的感觉。 进一步看,python技能树分为很多个板块,共分了15个板块,知识点从浅到深,由一开始的预备知识、基础语法到最后的数据分析和人工智能。它系统地整理了关于Python领域的知识点,并从海量的 优快云 数据中不断更新高质量内容。每个大的知识点都有很多文章讲解,不仅有案例展示,还有练习题。比如预备知识中的Python简介、程序设计思想、安装Pytho.

amxzwa的博客 593

手把手带你入门Python爬虫(二、爬虫预备知识)

爬虫预备知识一、计算机网络协议基础二、Html、Css、JavascriptAjax 异步加载GET请求 与 POST请求3种content-type三、爬虫基本方法1. 采集方案分类2. requests库3. 正则表达式4. beautifulsoup用法5. xpath基本语法6. css选择器提取元素 一、计算机网络协议基础 一个完整的网络请求过程如下: 在浏览器输入域名后,浏览器先访问DNS服务器,DNS返回ip给浏览器,然后浏览器与web服务器建立TCP连接,浏览器就可以发送http请求,we

张营的技术博客 688

python爬虫需要的知识_python爬虫第一篇~预备知识

在学习了python基础后,需要去做下最简单的实战,从目标网页上爬取一些资料学习最简单的爬虫,需要至少具备哪些知识点1:html知识2:基本的python知识3:爬虫第三方工具----------------------------------------1:html知识这样,我们就先来学习一下网页。我们每天都看了很多的网页。其实我们看到的内容是经过浏览器处理的。我们爬取网页的时候,不是去和经过浏...

weixin_39968995的博客 199

Python爬虫能有多难啊?看完这篇,你还不上手?

最近在学爬虫技术,顺便记录一下学习的过程,供各位小伙伴参考。网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的信息。

qq_41314882的博客 633
上一篇: 健康程序员的七个技巧
下一篇: 详细介绍JAVA和C++区别
壹只小小码农
博客等级 码龄5年 8101粉丝 1334原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值