【问题标题】:Extracting the title from a html page from certain sites从某些站点的 html 页面中提取标题
【发布时间】:2013-01-25 14:53:52
【问题描述】:

我正在尝试使用 jsoup 从特定站点http://www.justdial.com 提取网页的标题,如下所示:

    Document doc=jsoup.connect("http://www.justdial.com/Mumbai/Satkar-Veg-Restaurant-%3Cnear%3E-Sahakar-Nagar-Next-To-Talwalkars-Gym-Wadala/022P5318248_TXVtYmFpIFJlc3RhdXJhbnRz_BZDET").get();
    String title=doc.title();
    System.out.println("Title="+title);

它给了我一个标题字符串,它甚至不在该页面的源代码中的任何位置,但可以在浏览器中查看。但是对于来自不同站点的所有页面,它都可以正常工作。 那么任何人都可以给出这背后的原因以及如何在这种情况下获得预期的结果。谢谢。

【问题讨论】:

  • 返回的是什么标题?

标签: java html jsoup


【解决方案1】:

您应该设置用户代理标头,以便网站为您返回合适的 html

Document doc = Jsoup.connect("http://www.justdial.com/Mumbai/Satkar-Veg-Restaurant-%3Cnear%3E-Sahakar-Nagar-Next-To-Talwalkars-Gym-Wadala/022P5318248_TXVtYmFpIFJlc3RhdXJhbnRz_BZDET").userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2").get();
String title = doc.title();
System.out.println(title);

【讨论】:

    【解决方案2】:

    如果给定页面的标题是通过 Javascript 更新的,它将无法在源代码中查看或被脚本抓取。

    您可以使用 webdeveloper 工具中的“查看生成的源”菜单项将原始源与生成的源进行比较

    【讨论】:

      猜你喜欢
      • 2021-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-13
      • 2023-04-09
      相关资源
      最近更新 更多