在Java中读取网页的全部内容

3
我想用Java程序爬取以下链接的全部内容。第一页没问题,但当我想爬取下一页的数据时,源代码与第一页相同。因此,简单的HTTP Get一点用也没有。 是我需要爬取的页面链接。
该网站有活动内容,需要由HMTL/CSS/JavaScript渲染引擎解释和执行。因此,我有一个使用PhantomJS的简单解决方案,但在Java中运行PhantomJS代码很复杂。
有没有更容易的方法用Java代码读取整个页面的内容?我已经搜索了解决方案,但找不到合适的。

感谢您的帮助,
敬礼。


你可以使用一个真实的浏览器,并通过WebDriver接口进行交互吗?或者考虑使用JavaFX中包含的HTML5浏览器...? - Adam
尝试使用Selenium吗?示例:http://scraping.pro/how-to-use-selenium-webdriver-with-java/ - Tin
请注意,您发布的URL包含地理坐标。我不知道它们指的是什么,但如果它们是个人信息,您可能需要将其删除。 - Sam
1个回答

1
使用Chrome网络日志(或其他浏览器中的类似工具),您可以识别加载页面上显示的实际数据的XHR请求。我已经删除了一些查询参数,但基本上请求看起来像这样:
GET https://www.blablacar.de/search_xhr?fn=frankfurt&fcc=DE&tn=muenchen&tcc=DE&sort=trip_date&order=asc&limit=10&page=1&user_bridge=0&_=1461181945520

查询参数看起来很容易理解。 order=asc&limit=10&page=1 部分很容易调整以返回所需的结果。您可以调整page参数来抓取连续的数据页面。响应为JSON格式,有许多可用的库。

如果我爬取XHR请求给出的URL并更改页面编号,我就可以获取所需的所有数据。 - nerano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接