целей: получить исходный код страницы динамической загрузки;
метод: Ява + Селен + Gecokdriver;
проблема: в винде все работает нормально. но когда я разверну его в Centos. результат не тот, который я ожидал;
Я пытался развернуть код искателя с локального компьютера на сервере centos7.
(код отлично работает на моем компьютере.)
но когда я развертываю его на сервере Centos и, конечно, перенастраиваю соответствующую информацию - firefox.bin + gecokdriver.sh. исходная страница, которую я получаю, выглядит как код страницы до того, как она будет отрисована.
// the page url I want
String url = "http://rd.huangpuqu.sh.cn/website/html/shprd/shprd_ztrd_cwh/List/list_1.htm"
// Crawler code
public class MyCrawlerUtils {
private static final AtomicLong counter = new AtomicLong();
private static org.apache.log4j.Logger logger = Logger.getLogger(MyCrawlerUtils.class);
public static Document getOriginalPage(String url) {
// 设置浏览器使用的本地驱动
String firefoxDriver = Global.getConfig("firefox.driver");
System.setProperty("webdriver.gecko.driver",firefoxDriver); // 0.24.0 从配置文件中获取配置信息
// 设置浏览器在本地的位置 如果是默认的安装位置,则不需要设置
String firefoxExe = Global.getConfig("firefox.execute");
System.setProperty("webdriver.firefox.bin", firefoxExe);
FirefoxOptions options = new FirefoxOptions();
options.addArguments("disable-infobars");
options.addArguments("--headless");
options.setHeadless(true);
// 创建驱动对象;
FirefoxDriver driver = new FirefoxDriver(options);
// 向指定网址发送请求
driver.get(url);
// 等待一段时间
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
String pageSource = driver.getPageSource();
logger.info("{{{"+pageSource+"}}}"); // !!! there I get something unexpected.
Document document = Jsoup.parse(pageSource);
logger.info("第"+counter.incrementAndGet()+"条数据,"+"页面URL:"+url);
// 关闭驱动
driver.quit();
return document;
}
}
Я ожидаю, что pageSource отображается так, чтобы я мог проанализировать необходимую информацию.
как это:
! 您 , 下午 好! 2019 年 7 月 5 日 14:46:47
...
но все, что я получаю, это (как необработанный код страницы):
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!--[if lt IE 9]><script r='m'>document.createElement("section")</script><![endif]-->
</head>
<body>
<input
type="hidden"
id="__onload__"
name="qLsp0ZDBKQUw_70MRYeJh0bkMr.oUykkn2yj1KXRhPucI8hFjVeSpylsPEgk8gowdN0vGovDjIqFiTyyzVRJo44Js_zY9Bhwx9lUgTQJk8RZnIFQfdLRR4p7VLDx00SPA41uZw4PYM2VDSXuiOeF6KZLDZT2Jmkfn.E_KlSSYwq"
value="U17W7zqe6L3khRlEHvj1WG">
</body>
</html>