Python3爬虫概述

article/2025/9/7 14:17:30

爬虫基础

文章目录

  • 爬虫基础
    • 爬虫概述
    • Session和Cookie简述
      • 1. Session
      • 2. Cookie
      • 3.关于Session
  • 参考资料

爬虫概述

简单来说,爬虫就是从网页上提取信息并保存的自动化程序。

  • 爬虫程序的工作:

    • 获取网页: 爬虫需要先获取网页信息,即网页源代码进行后续分析。通过Python的urllib,requests等库可以实现。

    • 分析网页,提取目标信息: 获得网页源代码后,爬虫会对网页进行解析,进而提取出目标信息。

    • 保存数据:将提取出的目标信息进行保存,以便以后使用。

Session和Cookie简述

当我们进入某一网站时,可能需要输入登录名和密码。当我们关闭登录过的网站后,再次进入该网页时,并不需要再次输入登录信息(登录名和密码等),这就是Session和Cookie配合作用的结果。

先介绍一些前置概念:

  1. 静态网页和动态网页:
  • 什么是静态网页? 在网站设计中,使用纯粹的HTML格式编写的网页通常被称为“静态网页”。还有另外一种定义:静态网页是相对于动态网页而言,是指没有后台数据库、不含程序和不可交互的网页。

  • 静态网页的优缺点:

优点:加载速度快,编写简单。

缺点:可维护性差,不能根据URL灵活变换显示的内容。

  1. 什么是动态网页?是指跟静态网页相对的一种网页编程技术。其与静态网页的主要区别是:允许用户与服务后台之间进行数据交互。
  • 动态网页的优缺点:

优点:灵活性更强,功能更丰富。(可以动态解析URL中参数的变化,进而呈现不同的内容。)

缺点:①在访问速度上不占优势。②在搜索引擎收录方面不占优势。

注意: 区分一个网页是“动态”还是“静态”,并不是根据其呈现的内容是否具有动感(轮播图,滚动字幕等),而是根据网页是否能与后台数据库进行交互进行数据传递来判断。

无状态HTTP:

HTTP的无状态是指:HTTP协议对事物处理没有记忆能力,或者说服务器不知道客户端是什么状态。

比如:我们登录一个网站,那么我们此时的登录状态便是“登录中”。由于无状态HTTP的特性,当我们再次请求网站时,服务器不知道我们是否登录,所以还要在请求信息中包含我们的登录相关信息,这会导致某些信息多次重复发送。

因此,用于保持HTTP连接状态的技术出现了,分别时SessionCookie

1. Session

Session,中文称之为会话。其本义是指有始有终的一系列动作、消息。例如:打电话时,从拿起电话拨号到挂断电话之间的一系列过程可以成为一个Session。

Session对象用于存储用户Session的所需属性及配置信息。相当于Session对象保存了当前会话的状态。

Session存储在服务器。当用户发送请求到服务器时,如果没有相应的Session对象,那么服务器会新建一个Session对象。

2. Cookie

Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息 。

  • 用户状态维持

当用户第一次请求服务器时,服务器会返回一个响应头中带有Set-Cookie字段的响应给客户端,这个字段用于标记用户。客户端会把Cookie保存起来,当下一次向该服务器发送请求时,将保存的Cookie放到请求头中传给服务器。

服务器在第一次响应客户端请求时,创建了响应的Session。客户端的Cookie中保存了对应SessionID。服务端解析客户端发送来的Cookie可以定位到对应的Session,以此来获取客户端状态。

  • Cookie的属性结构

Google Chrome浏览器为例,进入一个网页(比如:知乎)。按下F12进入开发者模式。左侧Storage项中的Cookies子项中包含了Cookie的详细信息。

在这里插入图片描述

  • Name:Cookie的名称。创建后不可更改。

  • Value:Cookie的值。

  • Domain:指定可以访问的域名。如:设置为.zhihu.com,表示所有以zhihu.com结尾的域名都可访问。

  • PathCookie的使用路径。

  • Max-Age:Cookie失效的时间,单位为秒。如果为负数,则表示浏览器关闭后就失效。

  • Size:Cookie的大小

  • HTTP:略

  • Secure:略

Cookie的有效时间,有字段中的Max-Age/Expires决定。

3.关于Session

当用户关闭浏览器后,位于服务端的对应的Session不会立刻消失,只有当服务器设定的Session有效时间耗尽后,Session才会由服务器删除,以节省存储空间。

参考资料

  • https://baike.baidu.com/item/%E5%8A%A8%E6%80%81%E7%BD%91%E9%A1%B5/6327050#6
  • https://baike.baidu.com/item/%E9%9D%99%E6%80%81%E7%BD%91%E9%A1%B5/6327183
  • https://baike.baidu.com/item/cookie/1119
  • Python3网络爬虫开发实战(崔庆才 著)

http://chatgpt.dhexx.cn/article/EexjEX8Y.shtml

相关文章

python爬虫之

使用BeaufulSoup获取指定class时,结果是将我们所输入的字符串去做模糊匹配,因此会将所有包含的class结果输出,如下图: 但我们所需要的可能是精确匹配的那一条,这个时候更换一下代码即可: web_url http://…

Python3 网络爬虫 <教程全集>

1.1 最简单的爬虫 我的老师:Jack Cui PS:我是通过 看 Jack Cui 老师的文章 学习的爬虫,也为我之后的 爬虫打开了大门。 1.1.1 URL 是什么? 在学习 爬虫之前,我们必须知道 我们 平常 所说的网址,实际上 叫…

爬虫python

一、Urllib 1.什么是互联网爬虫? 如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据 解释1:通过一个程序,根据Ur…

手把手教你如何入门Python3 网络爬虫

很多朋友学习Python都是先从爬虫开始,其原因不外两方面: 其一Python对爬虫支持度较好,类库众多,其二语法简单,入门容易,所以两者形影相随,不离不弃。 要使用python语言做爬虫,首先需…

python3 爬虫

一.网络爬虫(Web Crawler) 1.网络爬虫:是一种按照一定的规则,自动地抓取网上信息的程序或者脚本。 2.爬虫:为了获取网上大量的我们能看的到或看不到的数据 3.基本步骤:(1)定位要爬的…

python 爬虫

Python 爬虫教程(更新中) 目录 1. 简介 2. 注意 3. xpathselenium 4. xpathscarpy(更新中) 5. icrawler 【借助更加便捷操作的pip包】 1. 简介 爬虫主要有2种方式:API(报文)-静态、模拟鼠标点击形式-动态; Xpath Scrapy(…

【python】python爬虫

爬虫基础 HTTP协议 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是基于TCP/IP通信协议来传递数据(HT…

Python3 网络爬虫(一):初识网络爬虫之夜探老王家(2020年最新版)

一、前言 3年前,我在 csdn 写过 Python3 网络爬虫系列教程,经过三年的积累,累计阅读量近 90W。 同时,我也在 Github 开源了所有 Python3 网络爬虫代码,累积获得 10.3k 的 star,4.1k 的 fork。 可以说&…

Python3 爬虫快速入门攻略

一、什么是网络爬虫? 1、定义:网络爬虫(Web Spider),又被称为网页蜘蛛,是一种按照一定的规则,自动地抓取网站信息的程序或者脚本。 2、简介:网络蜘蛛是一个很形象的名字。如果把互…

Python3爬虫(一):Python的入门学习以及Python网络爬虫的初步认识

Author:baiyucraft BLog: baiyucraft’s Home IDE:PyCharm 其实对于Python,一直想去学习,但一直没有足够的的时候去研究,这次趁疫情在家的时间,对于Python好好的研究研究。算是作为自己对于Py…

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

运行平台:Windows Python版本:Python3.x IDE:Sublime text3 转载请注明作者和出处:http://blog.csdn.net/c406495762/article/details/58716886 一直想学习Python爬虫的知识,在网上搜索了一下,大部分都是…

python3 爬虫(初试牛刀)

此文章仅供学习交流使用 在学习爬虫之前,把最近对于 VMware 的网络学习做个总结 接下来,步入正题! 分析 Robots 协议 禁止所有爬虫访问任何目录的代码: User-agent: * Disallow:/允许所有爬虫访问任何目录的代码: …

Python3爬虫详解

1概述 爬虫在Python中是个实现起来比较简单,关键在于网页的分析和内容的抓取。最近由于个人需要写了些内容,这里总结下爬虫相关的内容。 本文爬虫相关实现没有使用scrapy框架,通过urllib请求、bs4来实现。 2网络请求 网络请求部分用到urlli…

python3爬虫学习

python3爬虫学习 一、爬虫流程: ①先由urllib的request打开Url得到网页html文档 ②浏览器打开网页源代码分析元素节点 ③通过Beautiful Soup或则正则表达式提取想要的数据 ④存储数据到本地磁盘或数据库(抓取,分析,存储&…

最通俗、最详细的 Python3 网络爬虫入门指南

很多朋友学习Python都是先从爬虫开始,其原因不外两方面: 其一Python对爬虫支持度较好,类库众多,其二语法简单,入门容易,所以两者形影相随,不离不弃。 要使用python语言做爬虫,首先需…

Maven安装和配置本地仓库和阿里云镜像

maven安装配置换阿里源 1.下载maven 打开maven官网https://maven.apache.org/download.cgi,下载maven安装包,下载完成后解压到你想放的位置,不用安装 2.配置环境变量 3.配置阿里源和repository地址 打开刚才的解压文件conf文件夹下的setting.…

阿里云云效Maven仓库

一、Maven仓库概要 私服的目的:我们有一些自己的公用包,不想拉取工程编译,直接使用已经上传到私服的Jar包,在需要使用的项目工程直接引用使用,加速开发效率和编译效率。 阿里云仓库地址: 公用主仓库&#…

阿里云maven仓库的使用详解以及报错解决方法

仓库介绍 阿里云Maven中央仓库为 阿里云云效 提供的公共代理仓库,帮助研发人员提高研发生产效率,使用阿里云Maven中央仓库作为下载源,速度更快更稳定。阿里云云效是企业级一站式 DevOps 平台,覆盖产品从需求到运营的研发全生命周…

IDEA设置Maven阿里镜像仓库

1.打开IDEA安装目录&#xff0c;并进入如下相对路径 "\IntelliJ IDEA 2022.3.2\plugins\maven\lib\maven3\conf"。 2.打开settings.xml文件&#xff0c;并按照阿里官方指南插入配置项到指定位置。 2.1) 查看官方指南 2.2) 复制配置内容 <mirror><id>al…

IDEA中的maven阿里仓库配置

IDEA中的maven阿里仓库配置 1、进入官网&#xff1a; http://maven.apache.org/download.cgi 下载解压&#xff0c;然后记住解压位置 2、settings.xml配置更改 打开下载的文件 apache-maven-3.6.3 > conf> settings.xml&#xff08;图一为原文件&#xff0c;图二为配置…