这里一共有3个while循环嵌套例题,前面2个例题是为第3个九九乘法表做铺垫的,因为九九乘法表要注意的细节有很多,最终要做出一个九九乘法表。...,否则会所有星星是一行 j += 1 返回结果如下图: 图片4.png 实例三、九九乘法表 3.1 需求:如下图的执行结果 图片5.png 3.2 代码 # 多行多个乘法表达式 x * x...一行打印多个表达式----一行表达式的个数和行号数相等----循环:一个表达式---不换行 3....打印多行表达式----循环: 一行表达式---换行 注意: 一行表达式的个数和行号数相等 """ j = 1 while j <= 9: i = 1 # 九九乘法表的开始数字是1,所以这里取数字...while i <= j: # 重点:i列和j行要有一个联动关系 print(f'{i} * {j} = {i * j}', end='\t') # 利用制表符转义字符\t来实现乘法表对齐的格式
的选择器,通过 id、css选择器和标签来查找元素,xpath主要通过 html节点的嵌套关系来查找元素,和文件的路径有点像,比如: #获取 id为 tab的 table标签下所有 tr标签 path...''' #对 html文本进行处理 获得一个_Element对象 dom = etree.HTML(html) #获取 a标签下的文本 a_text = dom.xpath('//div/div/div...''' [@]:选择具有某个属性的节点 //div[@classs], //a[@x]:选择具有 class属性的 div节点、选择具有 x属性的 a节点 //div[@class="container..."]:选择具有 class属性的值为 container的 div节点 //a[contains(text(), "点")]:选择文本内容里含有 “点” 的 a标签,比如上面例子中的两个 a标签 //..., "#123")]' path = '//a[contains(@href, "#1233")]' //a[contains(@y, "x")]:选择有 y属性且 y属性包含 x值的 a标签 总结
要实现下图所示的效果: 代码: div 元素的内容不会显示出来!... 显示结果: 总结:使用标签前要了解此标签的属性有哪些,比如span标签没有width属性,所以即使设置了宽度也不会起作用,...这是小编经常犯的错误。...3,嵌套div的里层div文字居中显示 <div align="center" style="display:inline-black; float:left; margin-top:50px;width
.html', 'image2.html', 'image3.html', 'image4.html', 'image5.html'] 由上述代码可知:当xpath获取DOM对象为多个时,.get()只返回第一个元素的文本值...,而.getall()可以返回一个列表,该列表中包含所有元素的文本值。...element.attrib可以返回一个字典,该字典包含该节点的所有属性与属性值。...所以,当我们想要获取的属性值仅仅是一个DOM对象时,就可以使用这种方法,如果我们想要同时获取多个DOM对象的属性值,那么我觉得还是使用xpath比较方便: In [32]: response.xpath..."(//li)[1]") ['1'] 正确获取嵌套元素的文本值 导入实例: In [1]: from scrapy import Selector In [2]: sel = Selector
XPath常用的函数如下: Starts-with() 定位表达式的实例://img[starts-with(@alt,'div1')] 这个实例表示查找图片alt属性开始位置包含‘div1’关键字的页面元素...Contains()函数属于XPath函数的高级用法,使用的场景比较多,页面元素的属性值只要具有固定不变的几个关键字,就可以在元素属性经常发生一定程度的变化的时候,依然可以使用Contains函数进行定位...2.运行代码后电脑端的浏览器的动作,如下小视频所示: 5.4text() 函数 文本定位 使用text()函数可以定位到包含某些关键字的页面元素。...,Axis 可以任意组合,当然属性值和文本内容的模糊匹配也支持和上述方式任意组合,Axis 可以嵌套使用。...:大于 #所有li的code属性小于200的节点 '//li[@code<200]/text()' 2.div:对某两个节点的属性值做除法 '//div[@id="testid"]/ul
> 通过观察 HTML code 对于该页面,让我们构造一个用于选择标题标记内文本的xpath >>> response.xpath('//title/text()')...get() 'Example website' .get()始终返回单个结果;如果有多个匹配项,则返回第一个匹配项的内容; 如果没有匹配项,则不返回任何匹配项。....getall()返回包含所有结果的列表。...css选择器可以使用css3伪元素选择文本或属性节点: >>> response.css('title::text').get() 'Example website' .xpath()和.css()方法可用于快速选择嵌套数据...id="not-exists"]/text()').get() is None True 可以将默认返回值作为参数提供,以代替None >>> response.xpath('//div[@id="not-exists
我们可能熟悉使用INDEX、SMALL等在给定单列或单行数组的情况下,返回满足一个或多个条件的值的列表。这是一项标准的公式技术。...在《Excel公式练习32:将包含空单元格的多行多列单元格区域转换成单独的列并去掉空单元格》中,我们讲述了一种方法,给定由多个列组成的单元格区域,从该区域返回由所有非空单元格组成的单个列。...本文提供了一种方法,在给定一个或多个相同布局的工作表的情况下,可以创建另一个“主”工作表,该工作表仅由满足特定条件的所有工作表中的数据组成。并且,这里不使用VBA,仅使用公式。...D2:D10"),"Y")) 然后,将这组代表工作表名称的文本字符串的两端连接,在后面是所使用的工作表区域(D2:D10),在前面用单个撇号连接。...: =SUMPRODUCT({3,2,1}) 其中数组的值由3、2、1组成,与工作表Sheet1、Sheet2、Sheet3的列D中包含“Y”的数量一致。
EX:div类选择器 —— 选择具有特定类名的元素。EX:.class (.表示选择类)ID选择器 —— 选择具有特定ID的元素。...driver.find_element(By.XPATH, "//input[@name='discount']")【包含】contains() 函数用于匹配元素的属性值是否包含指定的字符串。...contains()这个函数用来检查元素中的文本内容是否包含指定的字符串。...driver.find_element(By.XPATH, "//div[contains(text(), 'fill')]")这里我们使用contains来检查div元素的文本内容是否包含fill。...3.1 CSS Selector的使用注意点使用CSS Selector定位元素的时候尽量避免单独使用某个属性来定位,比如div标签这样的,页面中肯定存在多个,单独使用会导致定位到多个元素而无法特定下来导致报错
属性节点:元素节点可以包含一些属性,属性的作用是对元素做出更具体的描述, 如文本节点。...a.常用的路径表达式 常见的路径表达式如下表所示: 表 XPath表达式与示例 b.谓语(Predicates) 为查找特点节点或包含某个指定值的节点,可以使用谓语(Predicates),...//div[@class=‘useful’]//li[last()] 表示选取具有class值为useful的div标签下的任意li元素的最后一个li元素。...= html.xpath('//li[contains(@class,"-0")]/a/text()') # 获取class属性值包含-0的li元素下的a标签的文本 print(result11) 输出如下...由于同时包含两种属性条件的a标签只有一个,所以返回的文本只有01。
结构如下,该元素下包含两个 text 文本,我们只想提取第一个文本内容。 常规的 innertext、textContent 和 outerText 方法只能提取到全部的文本。...可以通过 childNodes[索引] 来指定 text 文本来进行提取。 当然,childNodes[索引] 返回的是对象,再加个 nodeValue 就能返回文本了。
lxml模块可以利用XPath规则语法,来快速的定位HTML\XML 文档中特定元素以及获取节点信息(文本内容、属性值) XPath (XML Path Language) 是一门在 HTML\XML.../a[1] 选择第一个s //a[last()] 最后一个 //a[position()<4] 前三个 包含 //a[contains(text(),“下一页”)]选择文本包含下一页三个字的a标签**...对象具有xpath的方法,返回结果的列表 html = etree.HTML(text) ret_list = html.xpath("xpath语法规则字符串") xpath方法返回列表的三种情况...返回空列表:根据xpath语法规则字符串,没有定位到任何元素 返回由字符串构成的列表:xpath字符串规则匹配的一定是文本内容或某属性的值 返回由Element对象构成的列表:xpath规则字符串匹配的是标签...将数据写入到csv文件中需要以特定的格式写入,一种是列表嵌套元组,一种是列表嵌套字典。这里我们使用列表嵌套字典的方式写入。
前端工程师在编写 Web网站的时候,大部分的网页标签都会包含 id、name、class 中的其中一个或者多个。...# 通过多个属性值来唯一定位元素标签 driver.find_element_by_xpath('//div[@属性1="属性1的值" and @属性2="属性2的值"]') 匹配定位:匹配定位平常使用不多...,主要是利用属性中包含某个字符串来定位元素标签,包含:contains、starts_with # 匹配定位 # class属性值中包含:class driver.find_element_by_xpath...中也很常见,使用方式如下: # 属性定位 driver.find_element_by_css_selector('[属性名=属性值]') 需要注意的是,属性定位必须确保在当前页面内,这个属性具有唯一性...由于很多网页元素都是动态变化的,文本匹配经常需要修改,所以灵活性不高,很少使用。
有时我们需要查询某个字段是否包含某值时,通常用like进行模糊查询,但对于一些要求比较准确的查询时(例如:微信公众号的关键字回复匹配查询)就需要用到MySQL的 find_in_set()函数; 以下是用...find_in_set()函数写的sq查询l语句示例: $keyword = '你好'; $sql = "select * from table_name where find_in_set('"....$keyword"',msg_keyword) and msg_active = 1"; 以下是在tp框架中使用find_in_set()函数的查询示例: $keyword = '你好'; $where...数据库中存的关键字要以英文“,”分隔; 2.存储数据要对分隔符进行处理,保证以英文“,”分隔关键字。...以上这篇使用tp框架和SQL语句查询数据表中的某字段包含某值就是小编分享给大家的全部内容了,希望能给大家一个参考。
使用Chrome插件选择标签的时候,选中时,选中的标签会添加属性class="xh-highlight" 1.1.1查找某个特定的节点或者包含某个指定的值的节点 选取属于bookstore子元素的第一个...元素的值必须大于35.00: /bookstore/book[price>35.00]/title 找到包含下一页这三个字的文本: //*[contains(text(),'下一页')] 1.1.2选取未知节点...: html = etree.HTML(response.content) Element对象具有XPath的方法: html.xpath(xpath语句) 使用etree.tostring(html)...xpath方法返回列表的三种情况: 1.返回空列表:根据xpath语法规则字符串,没有定位到任何元素。 2.返回由字符串构成的列表:xpath字符串规则匹配的一定是文本内容或某属性的值。...,不能够直接获取其中的数据,如果需要获取数据需要使用以下方法 获取文本 element.text 通过定位获取的标签对象的 text属性,获取文本内容 获取属性值 element.get_attribute
XPath 常用规则 表 4-1 列举了 XPath 的几个常用规则。...表 4-1 XPath 常用规则 表 达 式 描 述 nodename 选取此节点的所有子节点 / 从当前节点选取直接子节点 // 从当前节点选取子孙节点 . 选取当前节点 .....('//li[contains(@class, "li")]/a/text()') print(result) 这样通过 contains 方法,第一个参数传入属性名称,第二个参数传入属性值,只要此属性包含所传入的属性值...此时运行结果如下: ['first item'] 此种方式在某个节点的某个属性有多个值时经常用到,如某个节点的 class 属性通常有多个。 12....表 4-2 运算符及其介绍 运算符 描 述 实 例 返 回 值 or 或 age=19 or age=20 如果 age 是 19,则返回 true。
对于长期使用python写代码的我来说,经常在Python代码中,使用.get方法来访问嵌套在JSON结构中的值。...我们知道JSON(JavaScript Object Notation)是一种常见的数据交换格式,它可以包含嵌套的键值对。但是在我们使用总该如何获取嵌套对象中的值呢?...当 JSON 对象中嵌套了其他 JSON 对象时,如何获取嵌套对象中的值呢?例如,以下 JSON 对象中包含了一个名为 "product" 的嵌套对象,该对象又包含了几个子对象。...2、解决方案但是,如果 JSON 对象中的嵌套对象不是直接使用键值对表示,而是使用数组表示,则获取嵌套对象中的值就会变得更加复杂。...例如,以下 JSON 对象中包含了一个名为 "media" 的嵌套数组,该数组中包含了多个子对象。
1、by_id 当所定位的元素具有id属性的时候我们可以通过by_id来定位该元素。 例如打开百度首页,定位搜索框后输入Selenium。 搜索框页面源代码:属性id值为kw 脚本代码: #!...的文本信息 print(e.text) 5、by_link_text by_link_text通过超文本链接上的文字信息来定位元素,这种方式一般专门用于定位页面上的超文本链接。...超链接地图源代码:链接文本值为”地图” a class="mnav" name="tj_trmap" href="http://map.baidu.com">地图a> 脚本代码:...而当/出现在XPath路径中时,则表示寻找父节点的直接子节点,当//出现在XPath路径中时,表示寻找父节点下任意符合条件的子节点,不管嵌套了多少层级。...href, 'order')]") 这句话的意思是寻找页面中href属性值包含有order这个单词的所有a元素,由于这个“订餐”按钮的href属性里肯定会包含order,所以这种方式是可行的,也会经常用到
因此在使用序号进行页面定位元素的时候,需要注意网页HTML代码中是否包含多个层级完全相同的代码结构。如果使用XPath表达式同时定位多个页面元素,将定位到多个元素存储到List对象中。...5.3使用页面属性定位 标签属性定位,相对比较简单,也要求属性能够定位到唯一一个元素,如果存在多个相同条件的标签,默认只是第一个,具体格式: xxx.By.xpath("//标签[@属性='属性值']"...']") (2)当标签属性很少,不足以唯一区别元素时,但是标签中间中间存在唯一的文本值,也可以定位,其具体格式 xxx.By.xpath("//标签[contains(text(),'文本值')]")...具体例子: xxx.By.xpath("//iunpt[contains(text(),'型号:')]") 注意:尽量在html中复制此段文本,避免因为肉眼无法分辨的字符导致定位失败 (3) 其他的属性值如果太长...有不想使用感觉对路径的定位方式,也没法搞清使用什么序号来定位元素,那么则推荐使用属性值定位元素的方法。 被测试网页的元素一般都包含各种各样的属性值,并且很多属性值具有唯一性。
元素之间可以嵌套元素,比如例子中的标签,和第二个标签,后者包含了一个标签。...最后,许多标签元素包含有文本,例如标签中的Example Domain。对我们而言,标签之间的可见内容更为重要。...浏览器中的页面 HTML文本和树结构和我们平时在浏览器中看到的页面截然不同。这恰恰是HTML的成功之处。HTML文件就是要具有可读性,可以区分网页的内容,但不是按照呈现在屏幕上的方式。...] 寻找特定属性,例如@class、或属性有特定值时,你会发现XPath非常好用。...当属性值中包含特定字符串时,XPath会极为方便。
对于网页的节点来说,它可以定义 id、class 或其他的属性,而且节点之间还具有层次关系,在网页中可以通过 XPath 或 CSS 选择器来定位一个或多个节点。...,可以看到返回形式是一个列表,每个元素是 Element 类型,其后跟了节点的名称,如 html、body、div、ul、li、a 等等,所有的节点都包含在列表中了。...(@class, "li")]/a/text()') print(result) 这样我们通过 contains() 方法,第一个参数传入属性名称,第二个参数传入属性值,这样只要此属性包含所传入的属性值就可以完成匹配了...运行结果: ['first item'] 此种选择方式在某个节点的某个属性有多个值的时候经常会用到,如某个节点的 class 属性通常有多个。 12....此表参考来源:http://www.w3school.com.cn/xp...。 13.
领取专属 10元无门槛券
手把手带您无忧上云