stjdydayou 3 лет назад
Родитель
Сommit
22fdab0cba

+ 42 - 36
src/main/java/com/zhiqiyun/open/core/spiders/PhantomjsDownloader.java

@@ -18,41 +18,47 @@ import java.util.logging.Level;
 @Component("phantomjs.downloader")
 @Component("phantomjs.downloader")
 public class PhantomjsDownloader implements Downloader {
 public class PhantomjsDownloader implements Downloader {
 
 
-    @Value("${spider.phantomjs_executable_path_property}")
-    private String phantomjsPath;
-
-    @Override
-    public Page download(Request request, Task task) {
-        try {
-            log.info(request.getUrl());
-            DesiredCapabilities caps = new DesiredCapabilities();
-            caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, phantomjsPath);
-            caps.setJavascriptEnabled(true); // enabled by default
-            caps.setCapability("phantomjs.page.settings.loadImages", false);
-            caps.setCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36");
-            PhantomJSDriver driver = new PhantomJSDriver(caps);
-
-            driver.setLogLevel(Level.OFF);
-            driver.get(request.getUrl());
-
-            String rawText = driver.getPageSource();
-
-            Page page = new Page();
-            page.setBytes(rawText.getBytes());
-            page.setRawText(rawText);
-            page.setUrl(new PlainText(request.getUrl()));
-            page.setRequest(request);
-            page.setDownloadSuccess(true);
-            return page;
-        } catch (Exception e) {
-            log.error("", e);
-        }
-        return null;
-    }
-
-    @Override
-    public void setThread(int i) {
-        log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>{}", i);
-    }
+	@Value("${spider.phantomjs_executable_path_property}")
+	private String phantomjsPath;
+
+	@Override
+	public Page download(Request request, Task task) {
+		PhantomJSDriver driver = null;
+		try {
+			log.info(request.getUrl());
+			DesiredCapabilities caps = new DesiredCapabilities();
+			caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, phantomjsPath);
+			caps.setJavascriptEnabled(true);
+			caps.setCapability("phantomjs.page.settings.loadImages", false);
+			caps.setCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36");
+			driver = new PhantomJSDriver(caps);
+
+			driver.setLogLevel(Level.OFF);
+			driver.get(request.getUrl());
+
+			String rawText = driver.getPageSource();
+
+			Page page = new Page();
+			page.setBytes(rawText.getBytes());
+			page.setRawText(rawText);
+			page.setUrl(new PlainText(request.getUrl()));
+			page.setRequest(request);
+			page.setDownloadSuccess(true);
+			return page;
+		} catch (Exception e) {
+			log.error("", e);
+		} finally {
+			if (driver != null) {
+				driver.close();
+				driver.quit();
+			}
+		}
+		return null;
+	}
+
+	@Override
+	public void setThread(int i) {
+		log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>{}", i);
+	}
 
 
 }
 }

+ 1 - 1
src/main/resources/application-prod.properties

@@ -15,4 +15,4 @@ uploader.file-host=http://171.104.234.207:9800/src
 uploader.allow-file-types=jpg,jpeg,png,gif
 uploader.allow-file-types=jpg,jpeg,png,gif
 uploader.save-path=/data/data-center/uploads
 uploader.save-path=/data/data-center/uploads
 ####################### spider config ###############################
 ####################### spider config ###############################
-spider.phantomjs_executable_path_property=/data/phantomjs-2.1.1-linux-x86_64/bin/phantomjs
+spider.phantomjs_executable_path_property=/data/data-center/phantomjs-2.1.1/bin/phantomjs

+ 1 - 1
src/main/resources/application.properties

@@ -42,4 +42,4 @@ uploader.allow-file-types=jpg,jpeg,png,gif
 uploader.save-path=/tmp/uploads
 uploader.save-path=/tmp/uploads
 
 
 ####################### spider config ###############################
 ####################### spider config ###############################
-spider.phantomjs_executable_path_property=E:/software/phantomjs-2.1.1/bin/phantomjs.exe
+spider.phantomjs_executable_path_property=/Users/jtoms/software/phantomjs-2.1.1/bin/phantomjs