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.mfbz.cn/a/449234.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

案例分析篇08:Web架构设计相关20个考点(1~6)(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12601310.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

Acer宏碁非凡Swift SFG16-71工厂模式原厂Win11系统,预装OEM系统恢复开箱状态

宏基笔记本电脑SFG16-71原装出厂Windows11系统安装工厂包下载,带恢复重置功能 链接:https://pan.baidu.com/s/1JK02kBbwKG_cIBNlEOzrOw?pwdzdfm 提取码:zdfm 原装工厂包系统自带所有驱动、Office办公软件、出厂时自带主题壁纸图片、系统…

汽车软件市场迅猛扩张,Perforce Helix Core与Helix IPLM助力汽车软件开发的版本控制及IP生命周期管理

汽车软件世界正处于持续变革和转型之中。从自动驾驶汽车到电动汽车和先进的驾驶辅助系统,汽车软件的集成度和复杂性不断提升。 据美国电气与电子工程师协会的研究,如今大多数汽车都集成了超过1亿行代码,而仅仅十年前,这种水平的汽…

Go语言简介

一.Go语言简介 1.1 优点 自带gc静态编译,编译好后,扔服务器直接运行简单思想,没有继承,多态和类等丰富的库和详细开发文档语法层支持并发,和拥有同步并发的channel类型,使并发开发变得非常方便简洁语法&am…

网站实现HTTPS必须要使用SSL证书吗?

网站实现https必须要使用https协议,而要使用https协议就必须要安装SSL证书来实现。https协议可以通过SSL证书来实现加密传输数据,从而保证访客的隐私信息不回被窃取到。SSL证书就是浏览器跟服务器之间建立起来的安全通信的重要组成部分。 当访客在访问一…

跨城容灾与异地多活常见的架构设计

跨城容灾与异地多活常见的架构设计 1. 同城IDC与跨城IDC2. 几种不同的部署方式1.1 无复制的异地部署(单地存储)1.2 无复制的异地部署(异地存储)1.3 两地三中心部署(同城同步复制,跨城异步复制)1…

几何变换 - 图像的缩放、翻转、仿射变换、透视等

1、前言 图像的几何变换是指改变图像的几何结构,大小、形状等等,让图像呈现出具备缩放、翻转、映射和透视的效果 图像的几何变换都比较复杂,计算也很复杂。 例如仿射变换,像素点的位置和灰度值都需要变换。 数字图像处理中利用后向传播的方法,将像素点变换后的位置通过…

安卓多个listView拖动数据交换位置和拖动

注意这里只是给出大概思路&#xff0c;具体可以参考修改自己想要的 public class MainActivity extends AppCompatActivity {private ListView listView1;private ListView listView2;private ArrayAdapter<String> adapter1;private ArrayAdapter<String> adapter…

智慧路灯杆AI监测应用,让高速出行更安全

高速公路是现代交通出行的重要组成&#xff0c;高速公路上的交通安全也一直是人们关注的焦点。针对更好监测和管理高速公路上的交通状况&#xff0c;可以基于智慧路灯杆打造AI交通监测应用&#xff0c;通过智能感知高速路段的路况、车况、环境状况&#xff0c;实现实时风险感知…

解决pandas使用sqlalchemy保存到Mysql数据库时,bool布尔类型数据转为tinyint数据的读取

pandas在使用to_sql()保存数据到数据表中&#xff0c;Mysql会将bool类型的数据转为tinyint类型&#xff0c;比如&#xff1a; 此时数据表字段的类型为&#xff1a; 读取的时候&#xff0c;如果直接使用read_sql会原封不动的读取成1或0的数据&#xff0c;因此我们存储的时候…

Ubuntu 14.04:安装PaddlePaddle(Conda安装)

目录 一、PaddlePaddle 概要 二、PaddlePaddle安装要求 三、PaddlePaddle安装 3.1 安装 Anaconda3 3.2 创建Anaconda虚拟环境&#xff08;python 3.8&#xff09; 3.3 进入Anaconda虚拟环境 3.4 检测 Anaconda 虚拟环境配置是否符合PaddlePaddle安装要求 3.4.1 确认 py…

6.S081的Lab学习——Lab1: Xv6 and Unix utilities

文章目录 前言一、启动xv6(难度&#xff1a;Easy)解析&#xff1a; 二、sleep(难度&#xff1a;Easy)解析&#xff1a; 三、pingpong&#xff08;难度&#xff1a;Easy&#xff09;解析&#xff1a; 四、Primes(素数&#xff0c;难度&#xff1a;Moderate/Hard)解析&#xff1a…

C++初阶:类与对象(尾篇)

目录 1. 构造函数与初始化列表1.1 对象的创建与构造函数的初始化1.2 初始化列表及构造函数存在的意义1.3 explicit关键字与构造函数的类型转换 2. static成员变量与static成员函数2.1 static成员变量2.2 static成员函数 3. 日期类流插入操作符的重载与友元3.1 友元3.2 友元函数…

Ubuntu20.04配置静态ip

文章目录 前言配置静态ip 前言 在 Linux 创建时默认是动态 ip&#xff0c;我们需要将这台 Linux 作为服务器&#xff0c;所以需要将动态分配的 ip 设置为静态的&#xff0c;防止 ip 变换。 可使用 ip addr 查看当前的 网卡 和 ip 信息&#xff1a; 从上图可看到动态分配的 i…

Python 导入Excel三维坐标数据 生成三维曲面地形图(体) 5-1、线条平滑曲面且可通过面观察柱体变化(一)

环境和包: 环境 python:python-3.12.0-amd64包: matplotlib 3.8.2 pandas 2.1.4 openpyxl 3.1.2 scipy 1.12.0 代码: import pandas as pd import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from scipy.interpolate import griddata fr…

HAProxy 简单介绍

一 HAProxy介绍 &#xff08;一&#xff09;发展历史 HAProxy是法国开发者威利塔罗(Willy Tarreau)在2000年使用C语言开发的一个开源软件&#xff0c;是一款具备高并发(一万以上)、高性能的TCP和HTTP负载均衡器&#xff0c;支持基于cookie的持久性&#xff0c;自动故障切换…

GPT与R 在生态环境领域数据统计分析

原文链接&#xff1a;GPT与R 在生态环境领域数据统计分析https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247597092&idx2&sn0a7ac5cf03d37c7b4659f870a7b71a77&chksmfa823dc3cdf5b4d5ee96a928a1b854a44aff222c82b2b7ebb7ca44b27a621edc4c824115babe&…

软件杯 垃圾邮件(短信)分类算法实现 机器学习 深度学习

文章目录 0 前言2 垃圾短信/邮件 分类算法 原理2.1 常用的分类器 - 贝叶斯分类器 3 数据集介绍4 数据预处理5 特征提取6 训练分类器7 综合测试结果8 其他模型方法9 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 垃圾邮件(短信)分类算…

实战案例——Kafka集群部署

1. 规划节点 IP主机名节点192.168.100.10zookeeper1集群节点192.168.100.20zookeeper2集群节点192.168.100.30zookeeper集群节点 2. 基础准备 使用ZooKeeper集群搭建的3个节点来构建Kafka集群&#xff0c;因为Kafka服务依赖于ZooKeeper服务&#xff0c; 所以不再多创建云主机…

打卡--MySQL8.0 二 (用户权限管理)

一、mysql8修改了安全规则&#xff0c;不能像mysql5.7 一次性创建用户并授权&#xff0c;需要分批创建。 1、注意在MySQL8.0版本中创建用户一定要在配置文件中增加如下内容&#xff0c;来兼容旧的程序运行。 default_authentication_pluginmysql_native_password 2、创建用户…
最新文章