通过jsoup获取HTML失败(缺少某些部分)

时间:2014-01-04 21:07:41

标签: java html-parsing jsoup

我一直在尝试从nytimes.com获取一些数据但不幸的是,所有有趣的部分都丢失了。我正在尝试获取给定输入查询的搜索结果。当我通过postman或php中的file_get_contents来做结果是相同的 - 我没有得到resultSearch部分。我读过我可能需要一些饼干或授权,但没有任何帮助。有任何想法吗? PS我试过很多变种 - 有或没有像ex:followRedirects

这样的选项
String serachPhraze = "africa flood death";
try 
{
     Connection.Response doc = Jsoup.connect("http://query.nytimes.com/search/sitesearch/#/" + serachPhraze.replaceAll("\\s+","+"))
    .userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0")
    .referrer("http://www.google.com")
    .timeout(12000)
    .followRedirects(true)
    .execute();

1 个答案:

答案 0 :(得分:1)

结果通过ajax获取并通过javascript动态生成。 Jsoup无法解决这个问题。从纯粹的解析器中获取的内容是您按 Ctrl + U (在chrome中)时看到的内容。这是服务器生成的html,它是您将获得的唯一内容,可以是jsoup或file_get_contents(在php中)。如果你想要javascript内容,那么你必须使用包含javascript引擎的selenium之类的东西。 Selenium将运行javascript代码然后获取内容。