当前位置: 首页 > 面试题库 >

selenium2:检测链接目标的内容类型

冯宏恺
2023-03-14
问题内容

我正在使用Selenium 2 Java API与网页进行交互。我的问题是:如何检测链接目标的内容类型?

基本上,这是背景:单击链接之前,我想确保响应是HTML文件。如果没有,我需要以其他方式处理它。因此,假设有一个PDF文件的下载链接。应用程序应直接读取该URL的内容,而不是在浏览器中打开它。

我们的目标是拥有一个能够自动知道当前位置是HTML,PDF,XML或其他类型的应用程序,以便使用适当的解析器从文档中提取有用的信息。

更新资料

额外的奖励:将奖励给最佳解决方案,使我能够获得给定URL的内容类型。


问题答案:

正如Jochen所建议的那样,在不下载内容的情况下获取Content-type的方法是HTTP HEAD,而硒webdrivers似乎没有提供这种功能。您将必须找到另一个库来帮助您获取URL的内容类型。

可以做到这一点的Java库是Apache HttpComponents,尤其是
HttpClient。

(以下代码未经测试)

HttpClient httpclient = new DefaultHttpClient();
HttpHead httphead = new HttpHead("http://foo/bar");
HttpResponse response = httpclient.execute(httphead);
BasicHeader contenttypeheader = response.getFirstHeader("Content-Type");

System.out.println(contenttypeheader);

该项目为HttpClient发布了JavaDoc,HttpClient接口的文档包含了一个很好的示例。



 类似资料:
  • 问题内容: 我正在使用Selenium 2 Java API与网页进行交互。我的问题是:如何检测链接目标的内容类型? 基本上,这是背景:单击链接之前,我想确保响应是HTML文件。如果没有,我需要以其他方式处理它。因此,假设有一个PDF文件的下载链接。应用程序应直接读取该URL的内容,而不是在浏览器中打开它。 目标是拥有一个能够自动知道当前位置为HTML,PDF,XML或任何其他类型的应用程序,以使

  • 问题内容: 我正在使用Selenium 2 Java API与网页进行交互。我的问题是: 如何检测链接目标的内容类型? 基本上,这是背景:在单击链接之前,我想确保 响应是HTML文件。如果没有,我需要以其他方式处理它。 因此,假设有一个PDF文件的下载链接。应用程序应 直接读取该URL的内容,而不是在浏览器中打开它。 我们的目标是拥有一个能够自动知道 当前位置是HTML,PDF,XML或其他类型的

  • 我使用spring JAX-RS将文件作为多部分表单数据上传。我有inputstream对象作为参数。当我将这个输入流复制到磁盘时,我得到了我的文本文件。 但是当我试图检测这个输入流的内容类型时,我得到的内容类型是application/octet-stream。 作为一个测试,我还用tika desktop测试了相同的文件,并获得了正确的内容类型。

  • 问题内容: 我一直在做一个小项目,我发现自己处在一个需要php函数的位置,该函数可以链接数据中的URL,同时使我可以在不想链接的链接上设置一些例外。任何想法如何做到这一点? 问题答案: 我在GitHub上有一个开源项目:LinkifyURL,您可能要考虑一下。它具有一个功能:从文本中提取URL并将其转换为链接。请注意,这不是一项微不足道的任务! 如果您确实不需要链接特定的域(即vimeo和yout

  • 我一直试图仅使用文件内容检测MIME类型,使用Apache Tika Core和Apache Tika Parser1.23 jars。下面是用于相同内容的代码: Tika无法检测扩展名为。tmp(text/plain file)和iso-8859-1字符集的文件的内容类型,内容如下: èé 通过以下方式正确检测具有相同配置和以下内容的文件: 000000000000000000000000000