特定的xPath和Regex - Web抓取

时间:2015-11-12 13:46:53

标签: regex iframe xpath web-scraping

我目前正在尝试抓一个网站。问题是信息被放置在iframe中的谷歌地图上。具体来说,纬度和经度。

我能够获得我目前需要的所有其他信息。搜索并使用import.io技术支持,我发现我需要使用特定的xPath和Regex来提取这些信息,但我在网站上找到的代码让我迷失了。理想情况下,我想分别拉出纬度和经度。这是我必须使用的代码。

我有什么选择?谢谢。

<div class="padding-listItem--sm">
  <iframe width="100%" height="310" frameborder="0" allowfullscreen="" src="https://www.google.com/maps/embed/v1/place?q=33.3929503,-111.908652&amp;key=AIzaSyDK08tC4NRubbIiw-xwDR1WEp-YAXX1Mx8" style="border:0"></iframe>
</div>

2 个答案:

答案 0 :(得分:0)

1)获取src元素的iframe属性。

string srcText = driver.findElement(By.tagName("iframe")).getAttribute("src");

2)解析网址(在srcText中找到)以获取纬度和经度值。

正则表达式找到两个数字:

/([-]?\d+\.\d+)/g

当网址符合您的指定时:

https://www.google.com/maps/embed/v1/place?q=33.3929503,-111.908652&amp;key=AIzaSyDK08tC4NRubbIiw-xwDR1WEp-YAXX1Mx8"

答案 1 :(得分:0)

获取iframe来源的 XPath 是:

//div[@class='padding-listItem--sm']/iframe/@src

然后你可以应用像这样的正则表达式来获得纬度经度

 /q=(-?[\d\.]*),(-?[\d\.]*)/g

在线实施Here