python基础及网络爬虫

在这里插入图片描述

网络爬虫(Web crawler),有时候也叫网络蜘蛛(Web spider),是指这样一类程序——它们可以自动连接到互联网站点,并读取网页中的内容或者存放在网络上的各种信息,并按照某种策略对目标信息进行采集(如对某个网站的全部页面进行读取)。实际上,世界上最大的网站——Google搜索本身就建构在爬虫技术之上,像Google、百度这样的搜索引擎会通过爬虫程序来不断更新自身的网站内容和对其他网站的网络索引。某种意义上说,我们每次通过搜索引擎查询一个关键词,就是在搜索引擎服务者的爬虫程序所“爬”到的信息中进行查询。当然,搜索引擎背后所使用的技术十分复杂,其爬虫技术通常也不是一般个人所开发的小型程序所能比拟的,不过,爬虫程序本身其实并不复杂,只要懂一点编程知识,了解一点HTTP和HTML,就可以写出属于自己的爬虫,实现很多有意思的功能。

1.1 了解python

Guido van Rossum在1989年发明了Python,而Python的第一个公开发行版发行于1991年。因为Guido是一部电视剧“Monty Python’s Flying Circus”的爱好者,因此将这种新的脚本语言命名为Python。从最根本的角度来说,Python是一种解释型、面向对象的、动态数据类型的高级程序设计语言。注:Python是开源的,源代码遵循GPL(GNU General Public License)协议,对所有个人开发者是完全开发的。
python的简明语法和各式各样的开源库使得Python在网络爬虫方向得天独厚,对于个人开发爬虫程序而言,一般对于性能的要求不会太高,因此,虽然我们一般认为Python在性能上难以与C/C++和Java相比,但总的来说,使用Python有助于更好更快地实现我们所需要的功能。另外,考虑到Python社区贡献了很多各有特色的库,很多都能直接拿来编写我们的爬虫程序,因此,Python的确是目前最好的选择。

1.2 配置开发环境

在开始探索Python的世界之前,我们首先需要在自己的机器上安装Python。值得高兴的是,Python不仅免费、开源,而且坚持轻量级,安装过程并不复杂。如果使用Linux系统,可能已经内置了Python(虽然版本有可能是较旧的),使用苹果电脑(macOS系统)的话,一般也已经安装了命令行版本的Python 2.x。在 Linux 或 macOS X 系统上检测 Python 3 是否安装的最简单办法是使用终端命令,在terminal应用中输入python3命令并回车执行,观察是否有对应的提示出现。至于Microsoft Windows系统,在目前最新的Win10版本上也并没有内置Python,因此我们必须手动安装。

1.2.1 windows上安装

Python官网
在这里插入图片描述
这里需要注意的是选择对应架构的版本,我们需要首先搞清楚自己的系统是32位还是64位的
根据安装程序的导引,我们一步步进行,就能完成整个安装。如果最终看到类似图1-2这样的提示,就说明安装成功。
在这里插入图片描述
这时检查我们的“开始”菜单,就能看到Python3.x的应用程序,其中有一个“IDLE”(意为“integrated development environment”)程序,我们可以单击此项目开始在交互式窗口中使用Python Shell。
在这里插入图片描述
在这里插入图片描述

1.2.2 在Ubuntu和MacOS上安装

Ubuntu是诸多Linux发行版中受众较多的一个系列。我们可以通过Applicatons中的添加应用程序进行安装,在其中搜索Python3,并在结果中找到对应的包,进行下载。如果安装成功,我们将在Applications(应用程序)中找到Python IDLE,进入Python Shell中。
访问 Python官网并下载对应的 Mac 平台安装程序,根据安装包的指示进行操作,我们最终将看到类似的成功提示:在这里插入图片描述
关闭该窗口,并进入Applications(或者是从LaunchPad页面打开)中,我们就能找到Python Shell IDLE,启动该程序,看到的结果应该和Windows平台上的结果类似。

1.3 Python基本语法介绍

1.3.1 hello world

输出一行“Hello, World”,在C语言中需要的程序语句是这样的:
在这里插入图片描述
而在Python里,可以用一行完成。
在这里插入图片描述

1.3.2 数据类型

在Python中内置的主要数据类型包括:
1、Number,数值类型。可以是 Integers(1 和 2)、Float(1.1 和 1.2)、Fractions(1/2 和 2/3)、或者是 Complex Number(数学中的复数)。
2、String,字符串,主要描述文本。
3、List,列表,一个包含元素的序列。
4、Tuple,元组,和列表类似,但是是不可变的。
5、Set,一个包含元素的集合,其中的元素是无序的。
6、Dict,字典,由一些键值对构成。
7、Boolean,布尔类型,其值或为 True 或为 False
8、Byte,字节, 例如一个以字节流表示的JPG文件

int和float之间,Python一般会使用是否有小数点来做区分
在这里插入图片描述
这里需要注意的是,将一个 int 与一个 int 相加将得到一个 int 。但将一个 int 与一个 float 相加将得到一个 float 。
这是因为Python会 把 int 强制转换为 float 以进行加法运算:在这里插入图片描述
使用内置的关键字进行int与float之间的强制转换是经常用到的:在这里插入图片描述
Python2中曾有int和long(长整数类型)的区分,但在Python3中,int吸收了2.x版本中的int和long,不再对较大的整数和较小的整数做区分。有了数值,我们就有了数值运算:

在这里插入图片描述 | 在这里插入图片描述
Python中还有相对比较特殊的分数和复数,分数可以通过fractions模块中的Fraction对象构造:在这里插入图片描述
复数可以用使用函数 complex(real, imag) 或者是带有后缀j的浮点数来创建:在这里插入图片描述
布尔类型本身非常简单,Python中的布尔类型以True和False两个常量为值:在这里插入图片描述
不过Python中对布尔类型和if else判断的结合比较灵活
在介绍字符串之前,我们先对list(列表)和tuple(元组)做一个简单的了解,因为list涉及一个Python中非常重要的概念:可迭代对象。对于列表而言,序列中的每一个元素都在一个固定的位置上(称之为索引),索引从“0”开始。列表中的元素可以是任何数据类型,Python中列表对应的是中括号“[]”的表示形式。在这里插入图片描述
列表切片(slice)可以简单地描述为从列表中取一部分的操作,通过指定两个索引值,可以从列表中获取称作“切片”的某个部分。返回值是一个新列表,从第一个索引开始,知道第二个索引结束(不包含第二个索引的元素),列表切片的使用非常灵活:
在这里插入图片描述
向一个list中添加新元素的方法也很多样,常见的包括:
在这里插入图片描述
这里要注意的是extend接受一个列表,并把其元素分别添加到原有的列表,类似“扩展”。而append是把参数(参数有可能也是一个列表)作为一个元素整体添加到原有的列表中。insert() 方法会将单个元素插入到列表中。第一个参数是列表中将插入的位置(索引)。
从列表中删除元素,可使用的方法也不少:在这里插入图片描述
元组(tuple)与列表非常相似,最大的区别在于:1,元组是不可修改的,定义之后就“固定”了。2,元组在形式上是用“()”这样的圆括号括起来的。由于元组是“冻结”的,所以不能插入或删除元素。其他一些操作与列表类似:在这里插入图片描述
【提示】元素可修改与不可修改是列表与元组最大(或者说唯一)的区别,基本上除了修改内部元素的操作,其他列表适用的操作都可以用于元组。
在创建一个字符串时,我们将其用引号括起来,引号可以是单引号(')或者双引号("),两者没有区别。字符串也是一个可迭代对象,因此,与取得列表中的元素一样,也可以通过下标记号取得字符串中的某个字符,一些适用于list的东西同样适用于str:
在这里插入图片描述
集合的特点是无序且值唯一,创建集合和操作集合的常见方式包括:
在这里插入图片描述
在这里插入图片描述
字典(dict)相对于列表、元组和集合,会显得稍微复杂一点。Python中的字典是键值对(key-value)的无序集合。在形式上也和集合类似,创建字典和操作字典的基本方式如下:
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/274307.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「CISP题库精讲」CISP题库习题解析精讲20道

前言 本篇主要对CISP教材第九章《计算环境安全》的一些习题进行讲解,包括20道题,这里只是部分习题,针对第九章可能会多写几章的内容,如果我发布的这些习题里面没有你想找的那道题,你也可以直接私信我,我加…

【读书笔记】针对ICS的ATTCK矩阵详解(一)

Techniques - ICS | MITRE ATT&CKhttps://attack.mitre.org/techniques/ics/ 一、初始访问(Initial Access) 该阶段:攻击者正在尝试进入ICS环境。 初始访问包括攻击者可能用作入口向量,从而可以在 ICS 环境中获得初始立足点的…

heStudio Authenticator验证器

在整整一年前,我设想了一个完全由我们开发的MFA令牌软件。由于时间的原因,该计划被一次次的搁置。终于,在2024年,本计划被再次重启,历经三个月(的夜晚)打造的媲美于Google Authenticator的完全由…

VR全景在智慧园区中的应用

VR全景如今以及广泛的应用于生产制造业、零售、展厅、房产等领域,如今720云VR全景更是在智慧园区的建设中,以其独特的优势,发挥着越来越重要的作用。VR全景作为打造智慧园区的重要角色和呈现方式已经受到了越来越多智慧园区企业的选择和应用。…

K8s-MySQL主从集群

K8s-MySQL主从集群 引言 该案例代码均可从https://github.com/WeiXiao-Hyy/k8s_example 获取,欢迎Star! 需求 一个“主从复制”的MySQL集群有一个主节点Master有多个从节点Slave从节点需要能水平扩展所以写操作只能在主节点上执行读操作可以在所有节点…

C++程序设计-第四/五章 函数和类和对象【期末复习|考研复习】

前言 总结整理不易,希望大家点赞收藏。 给大家整理了一下C程序设计中的重点概念,以供大家期末复习和考研复习的时候使用。 C程序设计系列文章传送门: 第一章 面向对象基础 第四/五章 函数和类和对象 第六/七/八章 运算符重载/包含与继承/虚函…

CUDA入门之统一内存

原文来自CUDA 编程入门之统一内存 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能(HPC)开发基础教程 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质…

Python元组(Tuple)深度解析!

目录 1. 什么是元组? 2. 创建元组 3.访问元组 4.元组的运算 5.修改元组不可行 6.元组的应用场景 前面的博客里,我们详细介绍了列表(List)这一种数据类型,现在我们来讲讲与列表相似的一种数据类型,元组…

使用Docker安装运行RabbitMQ---阿里云服务器

目录 0、阿里云没开端口的得要去安全组规则去添加: 1、下载RabbitMQ镜像: 2、查看镜像是否下载成功,得到docker镜像id: 3、运行RabbitMQ: 4、查看RabbbitMQ容器是否启动成功: 5、启动RabbitMQ中的插件管理 6、访…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的人群密度检测系统(Python+PySide6界面+训练代码)

摘要:开发人群密度检测系统对于公共安全等领域具有关键作用。本篇博客详细介绍了如何运用深度学习构建一个人群密度检测系统,并提供了完整的实现代码。该系统基于强大的YOLOv8算法,并对比了YOLOv7、YOLOv6、YOLOv5,展示了不同模型…

Python 读取写入excel文件

使用Python读取和写入excel的xlsx、xls文件 目录 读取xlsx文件 安装三方库 引入三方库 读取数据 打开文件 表名 最大行数 最大列数 读取一张表 读取整个文件 返回xls整体内容 安装三方包 读取内容 写入xls文件 引入三方库 创建文件并写入数据 报错及解决 报错…

KBL610-ASEMI开关电源专用KBL610

编辑:ll KBL610-ASEMI开关电源专用KBL610 型号:KBL610 品牌:ASEMI 封装:KBL-4 最大重复峰值反向电压:1000V 最大正向平均整流电流(Vdss):6A 功率(Pd):中小功率 芯片个数:4 …

项目解决方案:视频监控接入和录像系统设计方案(下)

目 录 1.概述 2. 建设目标及需求 2.1建设总目标 2.2 需求描述 ​2.3 需求分析 3.设计依据与设计原则 3.1设计依据 3.2 设计原则 4.建设方案设计 4.1系统方案设计 4.2组网说明 5.产品介绍 5.1视频监控综合资源管理平台介绍 5.2视频录像服务器和存储 5.2.…

MySQL--优化(索引--聚簇和非聚簇索引)

MySQL–优化(索引–聚簇和非聚簇索引) 定位慢查询SQL执行计划索引 存储引擎索引底层数据结构聚簇和非聚簇索引索引创建原则索引失效场景 SQL优化经验 一、聚簇索引 聚簇索引:将数据存储与索引放到了一块,索引结构的叶子节点保存…

ChatGPT无法登录,提示我们检测到可疑的登录行为,将阻止进一步的尝试。请与管理员联系

1. 问题描述 之前本来已经连续稳定使用ChatGPT好几个月了,但是今天尝试登录ChatGPT的时候,却提示:我们检测到可疑的登录行为,将阻止进一步的尝试。请与管理员联系。 此外,我还在网上看到了一些相关的消息,…

3D资产管理

3D 资产管理是指组织、跟踪、优化和分发 3D 模型和资产以用于游戏、电影、AR/VR 体验等各种应用的过程。 3D资产管理也称为3D内容管理。 随着游戏、电影、建筑、工程等行业中 3D 内容的增长,实施有效的资产管理工作流程对于提高生产力、减少错误、简化工作流程以及使…

【Android 内存优化】KOOM 快手开源框架线上内存监控方案-源码剖析

文章目录 前言OOMMonitorInitTask.INSTANCE.initOOMMonitor.INSTANCE.startLoopsuper.startLoopcall() LoopState.Terminate dumpAndAnalysisdumpstartAnalysisService回到startLoop方法总结 前言 这篇文章主要剖析KOOM的Java层源码设计逻辑。 使用篇请看上一篇: 【Android …

基于el-tree实现懒加载穿梭条

一、关键代码 <template><div><!-- 左侧待选列表 --><div class"left-box"><p>待选列表</p><el-input placeholder"输入关键词过滤" v-model"leftFilterText" clearable/><el-treeref"tree…

Windows系统安装MongoDB并结合内网穿透实现公网访问本地数据库

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 前言 MongoDB是一个基于分布式文件存储的数…

颜色检测python项目

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; 什么是颜色检测&#xff1f; 颜色检测是检测任何颜色名称的过程。很简单不是吗&#xff1f;嗯&#xff0c;对于人类来说&#xff0c;这是一项极…