2015-09-10 81 views
-1

我想在tumblr中更改我的網址,但我已將硬編碼鏈接指向我的博客。我沒有進入超過1000個帖子並手動更新鏈接,我被告知可以自動化。我需要它:編輯並替換tumblr文章中的部分網址

  1. 訪問博客的頁面
  2. 檢查後
  3. 如果存在的超鏈接文本中的舊網址,單擊編輯,編輯後的內容
  4. 點擊URL文本區域,在彈出的
  5. 單擊編輯那會出現
  6. 在新的URL的彈出替換URL中的一部分(例如:如果我們開始與http://old.tumblr.com/tagged,我們會再想要http://new.tumblr.com/tagged
  7. 單擊完成,在彈出的關閉並保存網址變更
  8. 保存更改後
  9. 繼續檢查頁面
  10. 如果沒有發生更多的情況下,在接下來的文章中,繼續到下一個頁面
  11. 重複,直到到達最後一頁

所以我相信我理解所需的邏輯/步驟,但我的缺陷是能夠執行它們。什麼纔是最好的語言或方法去實施呢?直接的首選,因爲我是一個完整的編碼新手。 Python被提到了我。 Autohotkey也許,以及?

我很抱歉,如果這不是正確的地方問。

目前我在舊URL的頁面上有一個重定向。

<title>Redirect</title> 
 
<script>location.replace('http://new.tumblr.com' + location.pathname);</script> 
 
<noscript> 
 
<h1>This blog has moved to <a href="http://new.tumblr.com/">New Blog</a>.</h1> 
 
<p>If you&rsquo;re reading this, you have JavaScript turned off and therefore can&rsquo;t be redirected automatically. Replace &ldquo;{BlogURL}&rdquo; with &ldquo;http://{text:New Tumblr URL}.tumblr.com/&rdquo; in your browser&rsquo;s address bar to get to your destination.</p> 
 
</noscript>

+0

你可以告訴你試過嗎? – mikedidthis

+0

現在,我在舊網址的頁面上重定向了位置 – ash

+0

@mikedidthis -I在上述帖子中添加了重定向代碼。我猜,它完成了工作。 – ash

回答

1

井AutoHotkey的我會使用IE的COM自動化來完成這項工作,這將會是最可靠的。

Com Object Reference

編輯:

使用瀏覽器的自動化方法坦率地編輯HTML只是去對此非常低效的方式。如果您有權訪問該網站,則可能直接訪問上傳HTML文件。如果是這種情況,下面的代碼應該爲您提供足夠的有關如何編輯頁面中包含的鏈接的詳細信息。

下面的代碼是簡化你將要做的事情。只是爲了熟悉這個過程。

html = 
(
<html> 
<body> 
<a href="http://old.tumblr.com/tagged1"/>this old link</a> 
<a href="http://old.tumblr.com/tagged2"/>this old link two</a> 
<a href="http://old.tumblr.com/tagged3"/>this old link three</a> 
<a href="http://new.tumblr.com/tagged3"/>this new link</a> 
</body> 
</html> 
) 

pwb := ComObjCreate("HTMLfile"), pwb.Write(html) 
Links := pwb.Links 
Loop % Links.Length ; check each link 
     If ((RelatedLink := Links[A_Index-1].href) != "" && (Links[A_Index-1].href ~= "http://old.")) { ; if the link is not blank 
       Links[A_Index-1].href := StrReplace(Links[A_Index-1].href, "http://old.", "http://new.") 
      } 

html := pwb.documentElement.innerHTML 
MsgBox % html 

這是我怎麼會去把它應用到了一堆網站:

SetBatchLines -1 
fileName := A_ScriptDir . "\myfile.txt" 

MyListOfWebPages = ; add all your blog page urls here 
(
http://myblogpageone.html 
http://myblogpagetwo.html 
http://myblogpagethree.html 
http://myblogpagefour.html 
) 

For Each, Line in StrSplit(MyListOfWebPages, "`n", "`r") { 
      FileAppend, % GrabWebPage(Line), % A_scriptDir "\htmlfile" A_index ".html" 
} 

GrabWebPage(Webpage) { 
whr := ComObjCreate("WinHttp.WinHttpRequest.5.1") 
;Change below to your URL 
whr.Open("GET", Webpage, true) 
whr.Send() 
whr.WaitForResponse() 
pwb := ComObjCreate("HTMLfile"), pwb.Write(whr.ResponseText) 

Links := pwb.Links ; collection of hyperlinks on the page 
    Loop % Links.Length ; check each link 
     If ((RelatedLink := Links[A_Index-1].href) != "" && (Links[A_Index-1].href ~= "http://old.")) { ; if the link is not blank 
       Links[A_Index-1].href := StrReplace(Links[A_Index-1].href, "http://old.", "http://new.") 
      } 
    Return pwb.documentElement.innerHTML 
} 
+0

我會檢查。謝謝!已添加代碼 – ash

+0

。 – errorseven