- 博客(50)
- 收藏
- 关注
原创 数据解析
数据解析对爬虫程序就如同是导盲犬对盲人一样,数据解析是爬虫程序的灵魂所在,所以我们今天来学习数据解析。首先最常用的三种数据解析方式有(beautifulSoup4库解析、xpath解析、正则表达式解析)三种。我们今天先来说说beautifulSoup4库解析。BeautifulSoup4库利用BeautifulSoup4库解析的大致思路是:1.首先实例化一个BeautifulSoup对象2.利用实例化出来的BeautifulSoup对象的属性和方法进行数据解析。3.数据的持久化存储。实例化B
2021-04-25 17:04:20 283
原创 xpath解析
xpath解析是我们最经常应用的数据解析方式,我们今天就来介绍xpath解析。xpath解析进行xpath解析大致分为以下几个步骤:1.导入lxml库,导入etree模块2.实例化etree对象tree3.数据解析4.保存爬取到的数据1.引入etree模块在这里,我学习的视频里面导入etree模块是直接从lxml库中导入的,但是好像py3以后就不能直接从lxml库中导入etree了,需要先从lxml中导入html库,利用html导入etree具体代码如下:from lxml import
2021-04-25 17:03:41 3777 1
原创 xpath实战01
经过了前面的讲解你是否已经能够熟练使用xpath表达式对数据进行解析了呢?下面给出我们上次布置的任务爬取某荣耀的英雄列表的代码供大家参考学习改进from lxml import htmlimport requestsimport osetree=html.etree#目标页面的urlurl='https://pvp.qq.com/web201605/herolist.shtml'headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 10.0;
2021-04-25 17:02:10 449
原创 爬虫02
在上一小节中我们已经拿到了想要爬取的页面的源代码了,后面我们就可以对代码进行分析从而提取出我们想要的东西了。对于我们想要爬取的页面直接进入抓包工具进行分析选中任意一张图片(如图中1)即可在对应的页面代码中显示出对应它的那段代码我们需要的是图片的地址,有了地址就可以拿到图片从而保存图片,因此我们来分析一波:首先定位到class值为’ui segment imghover’的div标签(图中2),然后点开第一个div标签(图中3),点开其下的a标签(图中4)发现a标签下的img标签(图中5)中的dat
2021-04-21 14:06:58 312 9
原创 爬虫01
爬虫(一)就不跟大家扯别的了,我们直接来干货了。我们先来介绍静态页面的爬虫。首先要会辨识静态页面和动态页面。静态页面与动态页面就我自己来说,我判断一个页面是静态页面还是动态页面的时候就是看这个页面是不是一次加载完的。你们看这个网页的图片,图片的刷新是通过鼠标点击页底的页码来实现的,滚轮来回拖动时当前页面的图片不会进行刷新。所以对这种页面进行分析的时候就可以从标签中提取出图片的地址进行保存。这张页面的图片是没有底部的页码的,图片的刷新是通过鼠标滚轮往下滑实时刷新的,这种图片就是通过刷新动态加载
2021-04-20 21:02:54 209 4
原创 爬虫实例
爬虫实例中国最好大学软科排名爬虫这里我们结合前面学过的requests库和beautifulSoup4库来实现爬虫功能。首先创建一个网页爬虫需要三个过程:1.从网络上获取网页的内容2.提取我们需要的数据存入数据结构中3.按照我们的格式输出数据。第一步可以通过requests库的get函数创建Response对象利用对象的属性获取。第二步需要我们分析网页的源代码,从代码中读出我们需要的数据。因此需要我们从浏览器中获取爬取网页的源代码。第三部就是调整输出的格式,符合我们的要求即可。那么我们现
2020-08-29 00:21:47 731
原创 beautifulsoup4库
BeautifulSoup库beautifulsoup4库是一个解析和处理HTML和XML的第三方库。使用requests库获取网页的内容后,需要进一步解析HTML页面格式,因为一个网页不只有内容,还有其他很多的语法用于构成页面的元素比如标题、页眉页脚、水印、页面颜色等等。因此我们需要一个用于处理HTML的库来解析出我们需要的内容。另外,由于名字太长,beautifulsoup4库又被称作bs4库。beautifulsoup4库中最主要的是BeautifulSoup类这里beautifulsoup
2020-08-28 19:44:39 1141
原创 requests库的使用
requests库的使用python应用的一个典型的实例就是网络爬虫。那么什么是网络爬虫呢?网络爬虫就是向网络自动获取数据,自动向网络发送数据的一种程序。网络爬虫一般分为两个步骤:1.通过网络连接获取网页内容2.对获得的网页内容进行处理最主流的两个用于实现爬虫的库为requests库和beautifulsoup4库。我们可以通过pycharm进行下载。这一次我们先来聊聊requests库:requests库是用于处理HTTP请求的第三方库。包括国际域名和URL获取、HTTP长连接和连接缓存、H
2020-08-24 10:30:34 371 2
原创 pyinstaller库
pyinstaller库的使用学到现在了,你已经可以编写一些简单的小程序了,写完的小程序,自己用pycharm跑一下就可以运行了。七夕临近,如果你写了一个表白小程序想给你的对象看看,但是很不碰巧的是你对象没有安装pycharm,你给她发过去一段代码,她八成看不懂而且还会说你是不是有病(看不懂python代码怎么办?让她关注我呗( ⸝⸝⸝⁼̴́◡︎⁼̴̀⸝⸝⸝) )。这时我们的pyinstaller库就闪亮登场了。pyinstaller可以把python语言脚本(就是我们编写完后的.py文件)打包
2020-08-22 17:21:23 440
原创 程序设计方法论
程序设计方法论自顶向下和自底向上一般来说,我们的程序设计应该采用自顶向下的设计方法,采用自底向上的执行方法。那么什么是自底向上和自顶向下呢?自顶向下即从一个总问题开始,把他分解为很多个小问题,再去找这些个小问题的解决方法,最后把这些小问题都解决了,最终问题也就迎刃而解了。然后只需把这些小问题的解决方案拼凑起来加以整理就得到了整个问题的解决方案。就比如我们玩游戏打BOSS,你去直接打BOSS你打不过(别问为什么打不过,问就是这样举例子比较形象。)此时官方就会为你设置三四个关卡,每通过一个关卡你就会获得
2020-08-22 12:30:24 1174
原创 图像的过滤和增强
图像的过滤和增强PIL库的ImageFilter类和ImageEnhance类提供了过滤图像和增强图像的方法❶ImageFilter.BLUR图像的模糊效果❷ImageFilter.CONTOUR图像的轮廓效果❸ImageFilter.DETAIL图像的细节效果❹ImageFilter.EDGE ENHANCE图像的边界加强效果❺ImageFilter.EDGE ENHANCE MORE图像的阈值平滑效果❻lmageFilter.EMBOSS图像的浮雕效果❼ImageFilter
2020-08-21 20:26:53 1544
原创 PIL库的使用
PIL的使用PIL库是专门用来处理图像的第三方库,可以对图像进行像素、色彩的操作还可以对图像进行归档和批量处理。这个第三方库也需要我们手动安装,安装的时候在搜索栏中搜索pillow即可安装。根据功能的不同,PIL库共包含21个与图片相关的类,可以把这些类看作是PIL库的子库,这些子库如下:Image、ImageChops、ImageColor、ImageCrackCode、ImageDraw、Image Enhance、ImageFile、ImageFileIO、ImageFilter、Image
2020-08-21 15:47:56 1220
原创 文本词频统计
词频统计在很多情况下我们会遇到这样的问题·,给你一篇文章,让你统计其中多次出现的词语。这就是词频统计问题。当然不我们的文本可以是英文、可以是中文、也可以是其他国家的文字。首先我们来分析这个问题的IPO:I(输入):从文件读取一段文本,或者从键盘输入文本,通常情况下是从文件中读取P(处理过程):把每个词语及其出现次数当作一个键值对进行处理O(输出):输出每个词及其出场频率。首先我们来看文本为英文的情况:统计一段英文文本中,单词出现次数,并输出出场次数前三的单词。I(输入):从文件中读取一篇文章
2020-08-20 22:00:25 9566 3
原创 词频统计选用文章
The connection between people and plants has long been the subject of scientificresearch. Recent studies have found positive effects. A study conducted in Youngstown,Ohio, for example, discovered that greener areas of the city experienced less crime.In
2020-08-20 21:59:23 828
原创 python jieba库的使用
jieba库的使用jieba库是python中一个重要的第三方中文分词函数库。我们pycharm是没有安装jieba库的,因此需要我们手动安装jieba库。
2020-08-19 23:09:18 1850
原创 使用pycharm安装第三方库
第三方库的安装之前说过我们python有非常多的第三方库,而我们的prcharm自带的库数量是有限的,因此如果需要用到一些prcharm没有的第三方库的话需要我们自己去安装。下面就来说一下pycharm安装第三方库的方法:首先点击左上角的’File’,出现一个菜单,点击菜单中的Settings选项:在弹出的界面中选择project这一栏选择Project Interpreter弹出如下图所示的界面,在package这一行的最右边有一个+号。点击那个➕号出现如下图搜索框,在搜索框中输入想要添
2020-08-19 22:06:38 1009 2
原创 python知识点总结
首先按照我的思路给大家整理了python不同的模块:大家可以按照我总结的进行学习,下面我把传送门放在下面啦(ง ˙o˙)วpython语法元素语法元素合集程序控制结构顺序结构分支结构循环结构数据类型数字类型一数字类型二字符串基础字符串操作format方法讲解组合数据类型函数函数基础参数传递函数递归异常异常处理文件文件的打开关闭文件读写操作常用库导入库的三种方式datetime库random库math库matplotlib库turtle库后续的爬
2020-08-18 12:24:57 5116 8
原创 python 程序控制结构
程序控制结构一段程序主要有三种控制结构组成:循环结构、分支结构、顺序结构。我们在写程序之前,作为初学者来说,最好能先画出程序的流程图。流程图由一下7种元素构成:其中,起止框表示一个程序的开始和结束;判断框判断一个条件是否成立,并根据判断结果选择不同的执行路径;处理框表示一组处理过程;输入/输出框表示数据输入或结果输出;注释框增加程序的解释;流向线以带箭头直线或曲线形式指示程序的执行路径;连接点将多个流程图连接到一起,常用于将一一个较大流程图分隔为若干部分。计算机程序可以看作是一条一条顺序执行的
2020-08-18 11:49:18 359
原创 python 函数的递归
函数递归函数是代码的一种封装,可以被其他程序调用,也可以在函数内部被调用,在函数内部调用自身的方式称为函数的递归。就像是人站在镜子面前看着镜子一样,镜子中的镜像也是:一个人在看镜子,镜子中的镜子的镜像也是一个人在看镜子一样…有点递归内味了。数学中的阶乘就可以用递归进行计算,你如果要计算n!你必须要计算出(n-1)!,想要计算出(n-1)!就要计算出(n-1-1)!以此类推,最后往前推算n次就得到了(n-n)!=0于是,我们得出了0!=1,有了0的阶乘就可以得知1的阶乘(0!*1),有了1的阶乘就知道了2
2020-08-17 21:04:37 546
原创 python函数的参数传递
前面我们已经学习过了函数的基本知识,下面我们来更深入的学习一下函数内部参数的传递。⑅❛ ᵕ ❛⑅函数的调用过程程序调用函数通常需要执行以下四个步骤:
2020-08-17 18:18:39 1087
原创 python 文件的读写操作
文件的操作前面我们已经说过了文件的打开和关闭了,文件操作步骤的前后两步我们都已经了解了,那我们现在开始学习中间的步骤-----文件的操作叭对文件的操作主要分为两类:读取和写入读取就是把文件里的数据读取出来,写入就是对文件进行修改。(●’◡’●)下面我们先来康康文件的读取叭文件的读取当文件以文本形式打开时读写按照字符串形式,采用当前计算机使用的编码或者指定编码;当文件以二进制形式打开时读写按照字节流方式。❶file.readall():读入整个文件内容,返回一个字符串或者字节流。❷file
2020-08-17 15:13:15 1714 1
原创 python 文件的打开关闭
文件的打开与关闭文本文件和二进制文件文件可以看成是存储在辅助存储器上的数据序列,可以包含任何数据内容。文件包括两种形式:文本文件和二进制文件。文本文件一般由特定编码的字符组成,二进制文件由比特0和比特1组成,没有统一的字符编码,数据的组织形式与文件用途有关。文本文件和二进制文件的根本区别是是否有统一的字符编码,二进制文件由于没有统一的字符编码只能被当作字节流,不能被看做字符串。但是无论是二进制文件还是文本文件都可以用“文本文件方式”和“二进制文件方式”打开。首先我们创建了一个名为"pyDemo1"
2020-08-17 11:21:47 2142 2
原创 python datetime库
datetime库以不同格式显示日期和时间是程序中最常用的功能之一,我们前面说到过的random库的seed函数就是默认以系统时间为随机数种子生成随机数的,那么系统时间应该以怎样的返回值返回给seed函数才可以使seed函数执行呢?那么我们下面来聊一聊datetime库叭datetime库是专门用来处理时间的库,datetime库以格林威治时间为基础,一天由606024秒来定义,包含两个库常量:datetime.MINYEAR和datetime.MAXYEAR分别表示最小年份1和最大年份9999da
2020-08-16 21:35:04 445
原创 python datetime库datetime类
之前我们说过,使用一个类首先需要创建一个类的对象,然后通过对象的属性或者方法进行一系列操作,这就是面向对象的基本思想,创建一个datetime对象有三种方法:⓰⓱⓲⓳⓴❶datetime.now():获得当前日期和时间,精确到微秒,并返回一个datetime对象❷datetime.utcnow():获得当前时间和日期的UTC(世界标准时间)表示,并返回一个datetime对象。❸datetime(year,month,day,hour,minute,second,microsecond):创建
2020-08-16 21:32:31 337
原创 python datetime库time类
time类time类主要用于获取时间,获取一个time对象可以使用time方法,需要我们传入五个参数分别为hour小时、minute分钟、second秒、microsecond毫秒和tzinfo时区,由于参数较多我们可以采用指名赋值的方法,获取一个time对象以后就可以调用time对象对应的方法:.hour获取time对象的时.minute获取time对象的分.second获取time对象的秒.microsecond获取time对象的毫秒.tzinfo获取time对象的时区用于比较时间大小的
2020-08-16 21:02:06 237
原创 python datetime库date类
为了书写方便,把datetime库取个别名为dpython也采用面向对象的编码风格,因此就会涉及到对象,我们先不讲述对象的相关概念,稍后会在java相关知识中讲述对象的有关概念,有些函数调用后可以产生一个对象,有些函数需要传入对象类型的参数,date类的常用函数如下:❶d.date(year,month,day):作用:需要手动输入三个整形变量year,month,day且需要满足限制关系如平年的二月没有29号等等,返回一个date类型的对象❷d.date.max/min()作用:返回日期类型的所
2020-08-16 20:19:30 877 2
原创 python random库
random库随机数在我们的生活中应用广泛,比如我们用于登陆验证或者设备验证的验证码就可以用随机数来生成,下面我们就来聊一聊用于产生随机数的random库吧。random库常用函数seed(a=None)————>初始化随机数种子,默认值为当前系统时间random()————>生成一个[0.0, 1.0)之间的随机小数randint(a, b)————>生成一个[a,b]之间的整数getrandbits(k)————>生成一个k比特长度的随机整数randrange(st
2020-08-16 16:42:50 516
原创 python math库
math库我们经常会利用计算机来做一些运算,那么既然提到了计算当然离不开有关计算的第三方库了。下面我们就来说道说道math库math库的数学常数①math.pi含义:表示圆周率,值为3.141592653589793②math.e含义:自然对数,值为2.718281828459045③math.inf含义:正无穷大,负无穷大为-math.inf④math.nan含义:非浮点数标记,NaN这些数学常数像他们的名字一样是常数,可以在计算式中出现,把他们当成常数一样看待就行。math库的数
2020-08-15 17:43:08 1522 1
原创 python matplotlib库的使用
matplotlib库前面我们说到了turtle库可用于绘制一些简单的图形,那么我们的matplotlib库也可以用于绘图,不过是提供更为高级的绘图服务matplotlib.pyplot库matplotlib.pyplot库是matplotlib库的子库,主要用于实现各种数据展示图形的绘制导入方式如下:import matplotlib.pyplot as plt(这里推荐大家采用给库取个别名的方式导入,因为我们的库名比较的长写起来也比较繁琐,取个别名引用起来不会太费事)。在下面的讲述中我会用pl
2020-08-15 14:19:17 822
原创 python库导入的三种方式
导入库的方式python有非常多的第三方库,我们使用这些库的时候需要下载并导入到工程项目中,下面我们来说一说有关库导入的知识叭❶import导入:使用import 库名的方式可以导入需要的库,但是我们在使用函数库函数的时候还需要使用库名.函数的方式。就像校长找你谈话,肯定叫的是某年纪某班的某同学,如果直接叫名字的话难免会有重名的学生,因此为了避免重名现象python中调用库函数必须通过库名.函数的方式,那有的库名非常的长啊,我整句代码写下来光调用库名都贼累怎么办呢?这是我们就有了第二中导库方式。❷
2020-08-15 00:18:05 16514
原创 python turtle库解析
python常用库之turtle库解析之前我们在聊python语言的特点时有这么一条:python的库资源非常丰富,这就大大减少了我们写代码的工作量,因此好好掌握一些常用的第三方库对我们写一些常用的的程序帮助是非常大的。那么下面我们来聊聊常用库中的turtle库吧我们在使用第三方库时需要安装并倒入到我们的工程文件中去,turtle库已经默认安装了,因此我们可以使用import关键字导入turtle库,关于导入第三方库相关知识大家可以查看下面这个链接turtle的英文含义是海龟,turtle库在pyt
2020-08-14 23:58:29 1852
原创 python异常处理机制
异常处理前面我们在学习集合时学到过两个方法,一个是remove(x)方法一个是pop方法,前者是移除集合中的一个元素x,如果x不在集合中返回KeyError异常,后者是删除集合所有元素,如果集合为空则返回KeyError异常。那么什么是异常呢?异常是可以预见的例外情况,因为可以预见,所以可以采用对应的措施进行防范。而错误是不可避免的,因为错误不可预见,所以也没有对应的处理措施。异常就好像物理学中的误差一样,误差的来源多种多样,但是却可以规避。——————————下面我们来看一个例子—————————
2020-08-13 15:35:12 439
原创 python组合数据类型
前面讲解字符串的时候已经提到了字符串是属于我们的序列类型的,那么序列类型是一种什么样的类型呢?那么今天它来了,我们来说说序列类型。说序列类型之前还要先说说组合类型。组合数据类型有三种类型,序列类型、集合类型、映射类型。他们都可以储存一组数据。组合数据类型可以将多个同类型或者不同类型的数据组织起来。序列类型是一个元素向量,元素之间存在先后关系,通过序号进行访问,元素之间可以重复。集合类型是一个元素集合,元素之间没有顺序,集合中的元素不能重复映射类型是存在对应关系的数据项组合,每个元素都是一个键值对,表
2020-08-12 21:01:23 339
原创 python映射类型
字典类型python中的字典可以通过大括号{}建立,建立模式如下:{<键1>:<值1>,<键2>:<值2>,…,<键n>:<值n>}。我们之前讲解集合类型时说过,集合也可以通过大括号和赋值语句的形式建立,因此字典也具有和集合类似的性质:键值对之间无序且不能重复,简单来说可以把字典类型看成是元素是键值对的集合。一般来说字典中的键值对访问模式如下:采用中括号进行访问<值>=<字典变量>[<键>]
2020-08-12 20:59:27 1063
原创 python集合类型
前面我们学习过了组合数据类型里面的序列类型了,接下来我们聊一聊集合类型叭集合类型集合类型和数学中的集合类型概念一致,是包含0个或多个数据项的无序组合,集合中的元素不可重复,元素类型只能是固定数据类型如:整数、浮点数、字符串、元组等。列表、字典、集合类型本身都是可变类型,不能作为集合的元素出现。由于集合中的元素无序,因此没有序号、索引和切片的概念,但是集合中的元素可以动态增加或删除。生成集合有两种方法:一种是使用大括号和赋值语句来生成如下图#用大括号和赋值语句生成集合S={"你今天好棒啊",123
2020-08-12 18:47:28 303
原创 python序列类型
序列类型基础序列类型是一维元素向量,元素之前存在先后关系,通过序号访问。序列类型有三种常用类型是:字符串、元组、列表。序列类型提供正向递增序号和反向递减序号进行元素的访问。序列类型提供了12种操作符和函数,下面我们来说说in————>x in s:如果x是s的一个元素则返回True,否则返回Falsenot in ————> x not in s:如果x不是s的一个元素则返回True,否则返回False+————>s+t:连接s和t*————>:sn或者ns:将序列
2020-08-12 16:52:10 3183
原创 python列表类型和操作
列表类型列表是包含0个或多个对象引用的有序序列,没有长度限制,可以自由增删元素。列表类型属于序列类型,因此适用序列类型的12种操作和方法,同样可以使用正向递增序号和反向递减序号进行访问。与同为序列类型的元组不同,列表的长度和内容都是可变的,元素类型也可以不同,使用起来非常灵活,那我们一起来看看列表究竟有多灵活吧生成列表可以用[]把元素括起来用于生成列表,也可以用list函数将元组或字符串转化为列表,如果直接使用list()函数,括号里面没有参数的话会生成一个空的列表str="你今天好棒鸭!"t
2020-08-12 16:16:13 1612
原创 python format方法讲解
上一篇我们讲解了字符串的一些处理函数和处理方法,其中比较重要的一个是format方法,用于对字符串进行格式化。我们先来看一下format方法的使用语法叭str.format(括号里面是用,分隔的参数)python使用槽机制配合format来使用。在一段字符串中,在我们想使用定义的变量来输出的地方采用槽{}来占位就好。槽里面如果没有序号就按照默认顺序进行填充,即参数的前后顺序,如果槽里面有序号的话则按照序号填充,如果要编号的话从0开始,最大的编号为参数个数-1我们来看下面这个例子:槽中没有序号,默认从
2020-08-11 22:01:57 967
原创 python字符串相关操作
前面学习过了字符串的基本知识,下面我们来聊聊字符串的一系列操作吧字符串相关操作python提供5个字符串基本操作符:+ ————>x+y:用于连接两个字符串x和y* ————>nx或xn:(n为整数)复制n次字符串xin ————> x in s: 如果x是s的子串返回True,否则返回False[]————>str[i]:索引,返回第i个字符str[n:m] ————>切片操作,返回区间为n到m的子串,区间左闭右开即不包括第m个字符。a="zmj"b=
2020-08-11 16:00:50 564 2
原创 python字符串基础
字符串类型前面我们已经学习过了python中的数字类型,相信你一定认真学习并且已经能够掌握他们了,那我们接下来学习python中的字符串类型## 3.1字符串基本知识字符串类型是python里序列类型的衍生类型,可以由一对单引号、双引号或三引号构成,其中单引号和双引号都可以表示单行字符串,通常字符串里面包含单引号时使用双引号括起来,字符串里面包含双引号时用单引号括起来。三引号可以表示单行或者多行字符串我们来看个例子:a='那个人对另一个人说:"赵某某好棒啊!"'b="那本书里面写着'赵某某很棒啊
2020-08-11 13:23:59 769 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人