首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >添加到已经找到城市的代码中的XPath表达式,该表达式还可能检索附近的邮政编码。

添加到已经找到城市的代码中的XPath表达式,该表达式还可能检索附近的邮政编码。
EN

Stack Overflow用户
提问于 2014-08-13 14:17:36
回答 1查看 174关注 0票数 2

经过大量的手工操作,我创建了XPath表达式,从被解析的网站HTML中检索到近100家公司在其中设有办公室的城市。直到很晚,我才意识到,这些城市的邮政编码将是优秀和独特的。

我意识到没有一段额外的XPath代码可以覆盖所有情况,但是是否有一些通用表达式可以合理地检索同一名称空间或附近名称空间中的5位数字(或5位数字、连字符和4位数字),假设邮政编码出现在城市之后。

例如,代码

代码语言:javascript
运行
AI代码解释
复制
//div[@class='content']//h5

可能会添加一些类似"and \\d{5}"的内容,我不熟悉XPath,并且使用regex语法,反斜杠用于5位,而只有5位数字。然后我可以快速地粘贴到附加代码上,看看它是否带回了邮政编码,其余的都是手工完成的。

对评论的答复:

下面是数百个HTML代码中的一个:

代码语言:javascript
运行
AI代码解释
复制
<div class="container">
<script type="text/javascript">
<div class="header">
<table>
<tbody>
<tr>
<td class="bodywrap" valign="top">
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<table class="body" width="100%" cellspacing="0" cellpadding="20" border="0">
<tbody>
<tr>
<td>
<table class="body" width="100%" cellspacing="3" cellpadding="0" border="0">
<tbody>
<tr valign="top">
<td width="50%">
<table width="100%" cellspacing="0" cellpadding="0">
<img border="0" src="/files/Office/ac28ef17-906a-4ed0-9850-0af853da6abe/Presentation/ceOfficeNameImage/t_NewYork.gif">
<br>
<br>
1251 Avenue of the Americas
<br>
New York, New York 10020
<br>
T:
<span class="skype_c2c_print_container notranslate">212.262.6700</span>

我已经尝试过这个XPath高速公路,但没有成功。即使是“纽约”,我也想要"10020“。

我在Windows 8上使用XML1.0(根据2013年的一篇文章,没有XML2.0)。

对评论的回应:以下是我使用的代码示例。

代码语言:javascript
运行
AI代码解释
复制
doc <- htmlTreeParse("http://www.butlersnow.com/Contact_Us.aspx", useInternal = TRUE)
xpathSApply(doc, "//div[@class='content']//h5", xmlValue, trim = TRUE)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-14 05:44:59

所以我们已经发现你

  • 正在使用R中提供HTML解析和XPath功能的包
  • 正在寻找一个XPath表达式,该表达式从HTML内容中提取特定的字符序列。

我们尚未确定的是,这个模块在R语言中支持哪个版本的XPath。要么它只符合XPath 1.0标准(更有可能),要么它也支持XPath 2.0。

为什么这是相关的?这是相关的,因为只有XPath 2.0提供了可以处理正则表达式的函数。Regexes是为了解决您所描述的问题,即在任意字符串中找到一行5位数字。现在,如何找出支持哪个版本?只需使用仅在XPath 2.0中可用的函数,例如tokenize(),并查看这是否会引发错误。

选项1:这个R功能最终支持XPath 2.0

首先,确定可能包含邮政编码的元素。例如,假设它在h5元素中。然后,将matches()函数与正则表达式一起使用。

代码语言:javascript
运行
AI代码解释
复制
//h5[matches(.,'\d{5}')]

或者稍微改变一下。当然,R不能区分实际的邮政编码和其他仅仅由一行5位数字组成的东西。

选项2:只有XPath 1.0可供您使用

然后,在我看来,没有合理的方法将其组合成一个XPath表达式,因为regexes是不可用的。但是,R本身恰好是擅长正则表达式。使用XPath从HTML中提取所有相关字符串,然后在R、XPath外部用正则表达式搜索它们。

注意:所有这些都不能以任何方式“证明”像这样简单的正则表达式是精确的和限制性的,足以只找到ZIP代码。在大量的HTML文档集合中,可能会有许多“假阳性”无法与“真实”的点击区分开来。然后,您必须改进该方法,例如,根据ZIP代码数据库检查结果。

因为我无论如何都在写作,所以没有所谓的“附近的命名空间”。您将XPath中的上下文项误认为是命名空间。在下面的示例中,http://www.ns.com是一个命名空间。

代码语言:javascript
运行
AI代码解释
复制
<ns:root xmlns:ns="http://www.ns.com">
  <ns:a/>
</ns:root>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25297142

复制
相关文章
OpenCV-Python学习(8)—— OpenCV 颜色表操作
1. 知识点 学习查找表 cv.LUT()【look up table】; 颜色查找表; 函数 cv.applyColorMap() 的使用。 2. cv.LUT() 函数说明 2.1 函数使用 cv.LUT(src, lut, dst) 2.2 参数说明 参数 说明 src 表示原始图像。 lut 表示查找表的地址,对于多通道图像的查找,它可以有一个通道,也可以与原始图像有相同的通道。 dst 表示输出图像。 2.3 查找表的使用和优点 构建查找表; 查找表应用; 查找表优势,预计算,空间换时间,避
Rattenking
2022/10/24
2.2K0
OpenCV-Python学习(8)—— OpenCV 颜色表操作
CSS颜色操作案例Demo【彩色标记笔】
案例代码: Html代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Colored Markers</title> <link rel="stylesheet" href="styles.css"> </head> <body>
百思不得小赵
2023/01/13
3650
CSS颜色操作案例Demo【彩色标记笔】
如何在 Tableau 中对列进行高亮颜色操作?
在做数据分析时,如果数据量比较大,可以考虑使用颜色对重点关注的数据进行高亮操作,显眼的颜色可以帮助我们快速了解数据和发现问题。比如一个数据表可能会有十几到几十列之多,为了更好的看清某些重要的列,我们可以对表进行如下操作——
小马哥的牛棚
2020/08/20
5.9K0
Python操作excel:用xlwt设置excel单元格背景颜色,给字体加粗。【附】颜色表
xlwt.easyxf() 设置样式,pattern 指的就是背景,ice_blue 就是我设置的颜色。 font 就是设置字体,bold on 是加粗。 样式可以合一起,之间用分号;分开。
小蓝枣
2020/09/23
3.6K0
YIQ颜色空间_简述RGB颜色
1、彩色的三要素 亮度:即人眼对光的明亮程度的感受。 色调:人眼能看到的颜色种类,与光的波长有关 饱和度:颜色深浅程度。与各种颜色混入白光的比例有关。 以上 色调 + 饱和度 = 色度
全栈程序员站长
2022/11/17
2.7K0
YIQ颜色空间_简述RGB颜色
Python操作高版本Excel文件:颜色、边框、合并单元格
本文主要颜色Python扩展库openpyxl的一些基本用法,包括创建工作簿、选择活动工作表、写入单元格数据,设置单元格字体颜色、边框样式,合并单元格等等。 from random import randint, choice from openpyxl import Workbook from openpyxl.styles import Font, colors, Border, Side from openpyxl.drawing.image import Image #创建工作簿 wb = Work
Python小屋屋主
2018/04/16
4.3K0
Python操作高版本Excel文件:颜色、边框、合并单元格
04.HTML区块/布局/表单/框架/颜色/颜色名/颜色值
04.HTML区块/布局/表单/ 框架/颜色/颜色名/颜色值 HTML <div> 和<span> ---- HTML 可以通过 <div> 和 <span>将元素组合起来。 ---- HTML 区块元素 大多数 HTML 元素被定义为块级元素或内联元素。 块级元素在浏览器显示时,通常会以新行来开始(和结束)。 实例: <h1>, <p>, <ul>, <table> ---- HTML 内联元素 内联元素在显示时通常不会以新行开始。 实例: <b>, <td>, <a>, <img> ---- HTML
Java帮帮
2018/03/15
6.7K0
04.HTML区块/布局/表单/框架/颜色/颜色名/颜色值
颜色空间
算法:RGB颜色空间基于三维直角坐标系,而HSI颜色空间圆柱体的横截面称为色环,色环清晰地展示了色调H和饱和度S两个参数,亮度I是由颜色点到圆柱体底部的距离表示。
裴来凡
2022/05/28
1.1K0
颜色空间
颜色直方图
算法:颜色直方图是在许多图像检索系统中被广泛采用的颜色特征。它所描述的是不同色彩在整幅图像中所占的比例,而并不关心每种色彩所处的空间位置,即无法描述图像中的对象或物体。颜色直方图特别适于描述那些难以进行自动分割的图像。
裴来凡
2022/05/28
1.5K0
颜色直方图
颜色转换,利用HSV颜色空间检测
绘制出这些通道的灰度版本 以便观察各通道的强度,像素越亮 代表的红色、绿色或蓝色值就越高。我们可以看到 粉色气球的红色值很高 蓝色值也相对比较高,但值大小不一 特别是当气球位于阴影下的时候。
小飞侠xp
2018/08/28
1.3K0
颜色、网页颜色与网页安全色
我们所看到的屏幕上所有的颜色都是由红、绿、蓝这三种基色调混合而成的。(在印刷上,颜色是四种颜色合成的,这个是表示方式上的不同。)每一种颜色的饱和度和透明度都是可以变化的,用0~255的数值来表示。如纯红色表示为(255,0,0),十六进制表示为#FF0000。按这种表达方式,理论上我们可以得到256*256*256=16777216种颜色。
大江小浪
2018/07/25
3.6K0
颜色、网页颜色与网页安全色
颜色原理
色相是用来区别区别颜色的标志,是光由于波长、频率的不同而产生的性质。色相是在光谱上自然分割的结果。
hotarugali
2022/03/01
2.2K0
颜色原理
颜色空间
RGB 立方体(描述各个分量的变化导致的颜色变化趋势) YUV 平面(压缩数据) HSV 锥体(人体视觉,cv2::inrange函数颜色分割)
sofu456
2019/08/26
2K0
颜色空间
SAP abap ALV的列颜色、、行颜色、单元格颜色设置
matinal
2023/10/13
4730
颜色滤镜
我们手机上有很多照片处理软件,图片滤镜是里面不可或缺的一部分,我们可以先尝试一些很简单的滤镜的算法,管中窥豹地去认识一下色彩的处理
异名
2020/06/09
2.2K0
颜色传输
由于目前图像采用的颜色空间主要为 RGB 空间,但 RGB 颜色空间的各分量之间存在着相关性,这就意味着如果改变一个像素颜色外观的话,必须改变所有的颜色通道,这使得颜色更改过程变得极为复杂。而后 Ruderman 等人基于人类视觉对图像数据的感知研究,提出了lαβ 颜色空间,与 RGB 及其他颜色空间不同的是在 lαβ 颜色空间中通道间数据的相关性最小,从而可在不同的通道独立地进行统计信息的传递。
客怎眠qvq
2022/11/01
8610
颜色传输
点击加载更多

相似问题

Eclipse Juno中的Android SDK Content Loader错误

21

Eclipse挂在Android SDK内容加载器上

17171

Android SDK Content Loader因NullPointerException而失败

223

Eclipse : Android SDK

11

android eclipse sdk位置

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文