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