2017-10-06 73 views
0

我有1000個網址。我需要一個工具來獲取我的網址並導出出現在這些網頁上的所有文字。 我需要在網頁上顯示的文本,而不是背景的html代碼。在網頁上保存文本(1000頁)

你知道任何軟件或方法嗎?

+2

檢查[這個答案](https://stackoverflow.com/a/21490198/2165759) – omegastripes

+0

'lynx'也許? http://lynx.browser.org –

+0

@MarkSetchell - l is是古老的,無法呈現JavaScript。現代的選擇是phantomjs – npocmaka

回答

2

其保存爲bat文件(即innerTextGet.bat):

@if (@X)==(@Y) @end /* JScript comment 
     @echo off 

     cscript //E:JScript //nologo "%~f0" %* 
     ::pause 
     exit /b %errorlevel% 

@if (@X)==(@Y) @end JScript comment */ 


var link=WScript.Arguments.Item(0); 
var saveTo=WScript.Arguments.Item(1); 


var IE = new ActiveXObject("InternetExplorer.Application"); 
IE.Visible=false; 
IE.Navigate2(link); 

function sleep(milliseconds) { 
    var start = new Date().getTime(); 
    for (var i = 0; i < 1e7; i++) { 
    if ((new Date().getTime() - start) > milliseconds){ 
     break; 
    } 
    } 
} 

var counter=0; 
while (IE.Busy && counter<60*60*10) { 
    //WScript.Echo(IE.Busy); 
    sleep(1000); 
    counter++; 
} 

if(IE.Busy){ 
    WScript.Echo("Cant wait 4ever"); 
    WScript.Quit(10); 
} 

function writeContent(file,content) { 
     var ado = WScript.CreateObject("ADODB.Stream"); 
     ado.Type = 2; // adTypeText = 2 
     ado.CharSet = "iso-8859-1"; // right code page for output (no adjustments) 
     //ado.Mode=2; 
     ado.Open(); 

     ado.WriteText(content); 
     ado.SaveToFile(file, 2); 
     ado.Close();  
} 

var innerText=IE.document.body.innerText; 
IE.Quit(); 
writeContent(saveTo,innerText); 

而且使用它像:

call innerTextGet.bat "https://stackoverflow.com/questions/46611374/save-texts-on-webpages-1000-pages" result.txt 

這不是故障安全 - 不檢查結果文件已如果存在參數被正確地傳遞等等,但它至少起作用。它再次使用innerText屬性InternetExplorer.Application對象由建議@omegastripes雖然我preffer jscript因爲它更容易被插入批處理文件。

由於您沒有提供關於鏈接存儲位置的信息,我假設您知道如何閱讀並遍歷它們。