【问题标题】:Scrape a web page using Jsoup使用 Jsoup 抓取网页
【发布时间】:2019-04-14 06:52:25
【问题描述】:

我需要使用 Jsoup 从下面的 HTML 中抓取邮政编码。我只需要属于a 标签的href 属性的邮政编码。在本例中,邮政编码部分为W2

<a href="/properties-for-sale/w2/chpk3848653" class="property_photo_holder" style="backgroundimage:url(https://assets.foxtons.co.uk/w/480/1523289105/chpk3848653-23.jpg)"></a>

这是 HTML:

</div>

<div id="property_1062067" class="property_summary">

<h6><a href="/properties-for-sale/w2/chpk3848653">Lancaster Gate, <span class="property_address_location_name">Bayswater,</span> W2</a></h6>

有人可以帮忙吗? 谢谢。

【问题讨论】:

  • “我只需要 W2 的邮政编码”是什么意思?另外,您可以发布您尝试过的东西吗?
  • 我只是试图显示我想要废弃的数据。请看下面
  • >贝斯沃特, W2
  • 这是我试图废弃的代码
  • 元素邮政编码 = doc.select("span.property_address_location_name"); for (元素邮政编码:邮政编码) { System.out.println(postcode.text()); }

标签: java html parsing web-scraping jsoup


【解决方案1】:

您可以使用 JSOUP,您只需要检索 href 属性值,如下所示:

Document document = Jsoup.connect(URL).userAgent("Mozilla/5.0").get();

Elements elements = document.select("a");

String href = elements.attr("href");

既然你有一个字符串的href属性,你需要应用一个RegEx(正则表达式)来获取你想要的字段,在这种情况下,邮政编码包含在:“/properties-for-sale/w2 /chpk3848653”。为此,您需要:

String regex = "[a-zA-Z0-9]{11}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(href);

String postalCode = matcher.find().group(0);

仅此而已,如果您还有其他需要,请随时提出!希望这对您有所帮助!

【讨论】:

  • 这段代码有问题。还是谢谢你
  • @Hakan 没问题!问我您是否需要其他任何东西,这只是一个示例代码作为指南!如果您觉得有用,请 +1!
  • 这是我如何抓取所有其他属性的代码......等等。
  • //获取属性元素位置locations = items.get(i).getElementsByTag("h6"); //获取属性元素的邮政编码 postcodes = items.get(i).getElementsByTag("h6.a[href]"); //获取经度元素 longitude = items.get(i).select("div");
  • foxtons.co.uk/… 这是网页抓取的链接。
猜你喜欢
  • 1970-01-01
  • 2013-01-02
  • 1970-01-01
  • 1970-01-01
  • 2015-07-21
  • 2015-02-27
  • 2016-04-04
  • 2021-06-28
  • 2018-10-15
相关资源
最近更新 更多