仅识别与新闻稿页面相关的链接

问题描述 投票:0回答:5

我的任务是找到给定链接的实际新闻稿链接。例如,说 http://www.apple.com/pr/

我的工具必须从上述 URL 中单独查找新闻稿链接,不包括在该网站中找到的其他广告链接、选项卡链接(或其他内容)。

开发了下面的程序,给出的结果是给定网页中存在的所有链接。

如何修改以下程序以从给定 URL 中单独查找新闻稿链接? 另外,我希望该程序是通用的,以便它可以识别来自任何新闻稿 URL(如果给定)的新闻稿链接。

import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import java.sql.*;
import org.jsoup.nodes.Document;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Element; 
public class linksfind{
public static void main(String[] args) {
    try{
         URL url = new URL("http://www.apple.com/pr/");
         Document document = Jsoup.parse(url, 1000); // Can also take an URL.
         for (Element element : document.getElementsByTag("a")) {
             System.out.println(element.attr("href"));}
             }catch (Exception ex){ex.printStackTrace();}
}
}
java html screen-scraping jsoup
5个回答
4
投票

我认为没有任何确定的方法可以实现这一目标。您可以创建一组所有可能的关键字,例如“press”、“release”和“pr”等,并使用正则表达式等匹配网址来查找关键字。其正确性取决于您的关键字集的全面程度。


3
投票

今天看看这个网站。将您看到的任何链接缓存到文件中。明天看现场;也许任何新链接都是新闻文章的链接?你会得到不正确的结果 - 一次 - 每当他们更改你周围页面的其余部分时。

您知道,只需使用提供的 RSS 提要,该提要旨在完全满足您的要求。


2
投票

查看 HTML 源代码。在普通网络浏览器中打开页面,右键单击并选择“查看源代码”。您必须在 HTML 文档树中找到一个路径来唯一标识这些链接。 它们都位于

<ul class="stories">

元素内的

<div id="releases">
元素中。相应的 CSS 选择器将是
"div#releases ul.stories a"

它应该是这样的:

public static void main(String... args) throws Exception { URL url = new URL("http://www.apple.com/pr/"); Document document = Jsoup.parse(url, 3000); for (Element element : document.select("div#releases ul.stories a")) { System.out.println(element.attr("href")); } }

到目前为止,这正是您想要的:

/pr/library/2010/07/28safari.html /pr/library/2010/07/27imac.html /pr/library/2010/07/27macpro.html /pr/library/2010/07/27display.html /pr/library/2010/07/26iphone.html /pr/library/2010/07/23iphonestatement.html /pr/library/2010/07/20results.html /pr/library/2010/07/19ipad.html /pr/library/2010/07/19alert_results.html /pr/library/2010/07/02appleletter.html /pr/library/2010/06/28iphone.html /pr/library/2010/06/23iphonestatement.html /pr/library/2010/06/22ipad.html /pr/library/2010/06/16iphone.html /pr/library/2010/06/15applestoreapp.html /pr/library/2010/06/15macmini.html /pr/library/2010/06/07iphone.html /pr/library/2010/06/07iads.html /pr/library/2010/06/07safari.html

要了解有关 CSS 选择器的更多信息,请阅读 
Jsoup 手册

W3 CSS 选择器规范


2
投票


0
投票

要识别专门针对

新闻稿页面的链接,您可以结合使用Google搜索运算符和专用工具。首先,您可以在 Google 搜索中使用“site:”运算符将结果范围缩小到特定网站。例如,如果您对“Example Corp”等公司的新闻稿感兴趣,您可以搜索: 将“example.com”替换为您要查找的公司的实际域名。这将向您显示其网站上与新闻稿相关的所有页面。

另一种方法是使用媒体监控工具。 Google Alerts、Mention 或 Talkwalker 等工具允许您为特定关键字(例如“新闻稿”或公司名称)设置提醒。每当在线发布符合您条件的新内容时,这些工具都会通知您。

此外,许多公司在其网站上都有专门的“新闻”或“新闻”部分,用于存档所有新闻稿。您可以导航到此部分以查找新闻稿列表,每个新闻稿通常由标题和链接表示。

请记住,有效的新闻稿分发不仅涉及找到链接,还涉及制作引人注目的新闻稿并瞄准正确的分发渠道。祝您的新闻稿工作顺利! 📰

© www.soinside.com 2019 - 2024. All rights reserved.