自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 使用PyQuery解析网页数据

通过doc(‘#container .list li’)这样的方式,先找寻到 id 为 container 的元素,在找他的下一级class名为 list 的 li 元素,然后打印出来,同时可以看到,使用 text() 方式可以输出 li 元素包含的文字部分(只输出文字,不输出转义字符)直接将网页的url传给pq作为参数,pq会向网页发送请求,获取到页面源代码,然后进行初始化。对于一个节点里面,要是这个节点的子节点有很多的话,可以采用遍历节点的方法来查找节点,比如一个 ul 标签里面含有多个 li 标签。

2024-05-19 15:04:19 950

原创 使用XPath来解析网页数据

首先是定位到超链接为“link4.html”的 a 标签,然后向上翻一级,也就是到了 li 元素,然后再查找这个 a 标签对应的 li 的 class 属性值,即最后的输出为[‘item-1’]第一种是访问class属性为“item-0”的 li 标签下的文字,但是在这行代码里面,li 标签的下一级是 a 标签,没有文字,只有换行符,所以输出也就是['\n ']获取class属性值含 “li” 和 name 属性值为 “item” 的 li 标签下的 a 标签的文字部分。

2024-05-18 20:31:25 834

原创 使用Beautiful Soup来解析网页数据

class ‘bs4.element.Tag’>这个类型是Beautiful Soup中一个很重要的数据结构,经过选择器的选择后,都是这种Tag类型,并且里面有很多属性也是很常用的,比如strig等。使用 . 的方式依次按层级的向下访问,当出现有同样多个节点的时候,只会匹配到第一个节点而忽略后面的结点。采用 find方式 ,这与find_all的获取数据的方式相同,只是范围不同罢了,find只查询符合条件的第一个元素。第一种:使用attrs来对节点的属性进行查询,这是比较普遍使用的方式。

2024-05-18 20:30:44 664

原创 更适合爬虫的正则表达式

对于第一个输出,我们使用的是.*的方式来正则字符串,对于.*而言,它会尽量匹配更多的符合要求的字符串,而.*后面的是 \d+,也就是至少会留一个数字给到 \d+,于是.*就把前面的123456都匹配掉,只留一个7给到 \d+,当使用group(1)方法时,访问的是(\d+),这个时候输出的就只有 7 了。匹配到hellow的空格字符时,就停止匹配,因为后面的数字部分,可以留给(\d+)来匹配,于是在使用group(1)方法时,访问(\d+),这个时候输出就会出现1234567。

2024-05-18 12:31:32 886

原创 使用requests库发送网络请求

上述代码只是对get请求的最基础的用法,即在requests.get()方法只中放入url参数即可获取网页源代码,但是在很多情况下,这种方式会被服务器检测到,于是可以传入更多的参数来为爬虫做伪装,即让爬虫程序看起来更像是浏览器。可以看到,在上述代码中,我们添加了headers参数,同时headers为字典型变量,里面可以添加很多东西,而这些东西都是来源于浏览器的请求头里面的内容。在这里显示的就是我们的请求头部分,在使用get请求时,添加请求参数,让爬虫程序得到一成伪装。使用Cookie成功模拟了登录状态。

2024-05-18 11:19:41 606

原创 爬虫基础(更适合于新手的爬虫认知)

URN与URL是URI的子集,在现行市场下,URN使用的非常少,几乎所有的URI都是URL,所以在不严谨的情况下,可以说URI就是URL。比如:打开一个浏览器,相当于就打开了一个浏览器进程,在浏览器上面播放视频,音乐,那么播放的视频和音乐就是这个浏览器进程上面的两个线程。b. 提取信息:对获取到的网页信息进行解析,提取需要的信息,常使用正则,Beautiful Soup,lxml,pyquery库完成。c. 保存数据:将提取到的信息,保存为TXT,JSON文本,数据库,HTML格式等。

2024-05-17 19:17:28 1033

原创 数据结构应用——哈夫曼树

将字符集中的每个字符作为一个叶子结点,各个字符出现的频度最为结点的权值,根据之前介绍的方法构造哈夫曼树。:在含有n个带权叶节点的二叉树中,其中WPL最小的二叉树为哈夫曼树,也称最优二叉树。采用哈夫曼树的性质构成的编码。路径长度(经过的边数)

2024-03-23 18:54:30 442

原创 数据结构难点——线索二叉树的详解

注:在阅读这篇文章之前,建议读者先掌握递归的概念和原理,以便更好地理解和欣赏文章中的内容。

2024-03-23 18:08:18 666 2

原创 数据结构大合集06——树与二叉树的相关函数运算算法

注:本篇文章的概念合集。

2024-03-22 00:16:02 1988

原创 数据结构的概念大合集06(树和二叉树)

树:有n个结点(元素)组成的有限集合(记为T);空树:当n = 0时;根结点:n > 0,这n个结点中有且仅有一个结点作为树的根节点,简称为“根”;子树:除根节点外的m个不相交的有限集,其中每个子集本身又是一颗符合本定义的树,称为根节点的子树;二叉树:一个有限的结点集合,这个结点或者为空,或者有一个根节点和两颗互不相交的称为左子树与右子树的二叉树组成。层序编号:约定编号从树根为1开始,按照层数从小到大,同一层从左到右的次序进行。树中所有的基本术语在二叉树里面都适用。

2024-03-21 20:25:28 736

原创 数据结构大合集04——队的相关函数运算算法

注:本篇文章的概念合集。

2024-03-17 13:18:07 817

原创 数据结构大合集03——栈的相关函数运算算法

【代码】数据结构大合集03——栈的相关函数运算算法。

2024-03-17 12:12:46 284

原创 数据结构大合集02——线性表的相关函数运算算法

使用头插法后,数组a里面的元素会倒置,比如a[5] = {1,2,3,4,5},头插法后,链表里面的元素是 5,4,3,2,1 ,具体原因可以多体会一下上述代码中的for循环部分。对于双链表的一些基本运算而言,比如求长度,取元素值,查找元素等与单链表相同,这里就不再展开了,但双链表的插入与删除结点就不同于单链表了,这里做详细说明。与头插法不同,尾插法后得到的元素不会倒置,这都是 LinkNode* r 的功能。

2024-03-17 11:32:28 494

原创 数据结构的概念大合集05(串)

串是有零个户多个字符组成的有限序列,比如字符串。用 “ ” 或 ‘ ’ 来表示串。两个串相等:当且仅当这两个串的长度相等并且各对应位置上的字符都相同。子串:一个串中的任意个连续字符组成的序列称为该串的子串。空串是任何串的子集。

2024-03-16 19:59:13 620

原创 数据结构的概念大合集04(队列)

队列限制为仅允许在表的一旦进行插入操作,而在表的另一端进行删除操作。将进行插入的一端称为队尾,进行删除的一端称为队头或对首。将插入新元素称为入队或进对。将删除元素称为出队或离队。队列的特点是:先进队的先出队,即先进先出表(first in first out,FIFO)环形队是顺序队的衍生。

2024-03-16 17:30:28 927

原创 数据结构的概念大合集03(栈)

栈是一种只能在一端进行插入或删除操作的线性表。在栈中,允许插入和删除操作的一端称为栈顶,另一端称为栈底。当栈为空时,称为空栈。栈的插入操作称为进栈或入栈,删除操作称为出栈退栈。栈的特点是“后进先出”,即后进栈的元素先出栈,英文表示为“last in first out,即LIFO。

2024-03-16 17:28:58 712

原创 数据结构的概念大合集02(线性表)

是具有相同特性的数据元素的一个有限序列(即有限,且有序)一般表示为L = (a1,a2,a3,a4,…,an-1,an线性表是表示数据元素之间的逻辑结构,即不考虑在计算机中的具体实现。

2024-03-16 14:13:04 1867

原创 数据结构的概念大合集01(含数据结构的基本定义,算法及其描述)

名称具体概念数据描述客观事物的数和字符的集合,能被计算机程序处理的符号总称数据元素数据的基本单位,又称元素、结点、顶点、记录数据项是具有独立含义的数据最小单位,是构成数据元素的最小单位,又称字段、域数据对象性质相同的数据元素的集合,是数据的一个子集数据结构是相互之间存在一种或多种特定关系的数据元素的集合,包括逻辑结构和物理结构数据类型是一个值的集合和定义在这个值集上的一组操作的总称抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。

2024-03-16 12:16:02 1994 2

原创 数据结构——入门级01

用代码将现实世界的问题信息化,然后用计算机高效的处理这些信息从而创造价值。数据的存储结构分为四种:顺序存储,链式存储,索引存储,散列存储。数据运算研究的是针对于某种逻辑结构,结合实际需求,定义基本运算。物理结构是研究如何用计算机来实现经过定义的数据结构。逻辑结构,研究的是元素之间的逻辑关系。针对逻辑结构——线性结构。

2024-03-03 20:55:56 373

原创 C语言——选择结构

意思是,如果表达式1成立,则执行表达式2;如果不成立,则执行表达式3。条件表达式,是if语句的简化,也被称为三目表达式。if( 表达式1 (一般为条件的判定) ){C语言提供了6种关系运算符。

2024-02-26 15:12:30 204 1

原创 C语言——数据类型

在C语言里面,数据整体呈现出变量和常量。

2024-02-26 14:32:46 283 1

原创 微信开发者工具——引用

如:C import B,B import A,在C中可以使用B定义的template,在B中可以使用A定义的template,但是C不能使用A定义的template。import 有作用域的概念,即只会 import 目标文件中定义的 template,而不会 import 目标文件 import 的 template。

2024-01-17 15:35:31 938

原创 微信开发者工具——模板

以template的name属性来定义模板的名字,以便于调用模板< view>< text>这是一个模板< /text>< /view>

2024-01-17 14:02:05 445

原创 微信开发者工具——模板语法

如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态(如 input 中的输入内容,switch 的选中状态),需要使用 wx:key 来指定列表中项目的唯一的标识符。当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。如果要一次性判断多个组件标签,可以使用一个 < block/> 标签将多个组件包装起来,并在上边使用 wx:if 控制属性。

2024-01-17 02:40:18 908

原创 微信开发者工具——相关配置

客户端窗口的底部或顶部有 tab 栏可以切换页面。均是在app.json里面进行。定义小程序页面的样式等。配置自定义TabBar。

2024-01-17 01:24:27 1017

原创 见识ES6

ES6即ECMAScript 6.0,是JS的下一代标准,目标是为了让JS编写复杂的大型应用程序。

2023-12-12 00:42:53 293 1

原创 ES6的数据类型

表示独一无二的值,常用来定义对象的私有变量,类似于字符串的数据类型,在声明变量时,只用Symbol就可以了,并且取值的时候,一定要用[变量名]将set转换成数组:(使用扩展运算符)在增加相同的元素是,会自动忽略。判断是否存在一个属性值。

2023-12-08 01:58:26 342

原创 玩转ES6之函数

在这个例子中,createCounter 函数返回一个匿名函数,这个匿名函数能够访问其外部函数的作用域,因此可以访问并修改 count 变量。每次调用 counter 函数时,都会增加 count 的值,并返回新的值。这就是闭包的基本概念。扩展运算符:将一个数组分割,并将各个项作为分离的参数返回给函数。使用=>来定义,取代了function( ){ }和一个紧挨着的具名参数指定。剩余运算符:把多个独立的参数合并到一个数组里面。完美取代了上面对arguments的使用。

2023-12-07 21:34:19 353

原创 JS函数定义

/function是关键字;funcName是函数的名称;paramenters为参数(可有可无),当有多个参数时,中间用逗号隔开statements;//函数体//返回值 }通过表达式的形式来定义一个函数statements;//函数体//返回值 };//注意此处的分号不要掉由于匿名函数没有函数名,所以需要定义一个变量来对匿名函数进行接收,方便调用alert("欢迎"+user+"来到漫步时尚广");f("admin");

2023-12-07 18:02:55 354

原创 JavaScript对象

var 对象变量名 = new Object();对象变量名. property1 = value1;对象变量名. methodName=fuctionName | fuction(){};//1.直接先创建空对象,然后不断丰富student.name = "小王";console.log(this.name+"正在学习......");

2023-11-24 16:07:39 812 1

原创 对浏览器对象和DOM对象的了解

一、firstChild 属性返回‘childNodes’数组的第一个子节点。如果选定的节点没有子节点,则该属性返回 NULL。说明:与elementNode.childNodes[0]是同样的效果。二、 lastChild 属性返回‘childNodes’数组的最后一个子节点。如果选定的节点没有子节点,则该属性返回 NULL。说明:与elementNode.childNodes[elementNode.childNodes.length-1]是同样的效果。

2023-11-23 00:28:19 30

原创 JS的进阶操作

alert(sum); //按钮 , onclick点击事件,直接写函数名

2023-11-21 16:54:56 29

原创 JS的基础

在JS中,常量好比定值,在程序中一直不变。无非实在定义和输出的关键词存在异同。其命名和使用与C语言类似。这样就可以避免要在代码中。用一个暂时变量来交换。

2023-11-21 02:32:09 19

原创 JS的简单使用

URL:可选参数,在窗口中要显示网页的网址或路径。如果省略这个参数,或者它的值是空字符串,那么窗口就不显示任何文档。3.相同 name 的窗口只能创建一个,要想创建多个窗口则 name 不能相同。2.“_top”、“_blank”、"_self"具有特殊意义的名称。参数字符串:可选参数,设置窗口参数,各参数用逗号隔开。str1: 要显示在消息对话框中的文本,不可修改。显示一个对话框,输入文字为对话框的提示文字。窗口名称:可选参数,被打开窗口的名称。str:在消息对话框中要显示的文本。

2023-11-21 02:30:05 25

原创 初见DOM

Object是获取的元素对象,如通过document.getElementById(“id”)获取的元素。以树状图的形式将标签与标签之间的关系表达出来。CSS标签.innerHTMl=“更换内容”通过display属性来设置。这对HTMl生成的JS对象。

2023-11-21 02:24:24 17

原创 css养成

Visibility(元素可见性),Cursor(光标),Letter-spacing(字母间距),Text-indent(首行缩进),Text-align(文本对齐方式),List-style(列表符号样式)List-style-type(列表符号类型),Border-collapse(边框合并)给包含浮动元素的父元素添加一个:after伪元素,并将其内容设置为一个空格,然后设置clear属性来清除浮动。not-allowed:表示无法执行该操作的光标,通常是带有一个禁止符号的圆圈。

2023-11-19 02:05:55 35

原创 解HTML

os:name:定义名字method:发送方式action:处理程序enctype:编码方式输入标记-- 表格内容 -->

2023-11-18 03:57:34 54 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除