Python 编辑和替换tumblr文章中的部分URL
我想在tumblr中更改我的URL,但我的博客到处都有硬编码链接。我被告知可以自动更新链接,而不是浏览1000多篇文章并手动更新链接。我需要它来:Python 编辑和替换tumblr文章中的部分URL,python,url,tumblr,autohotkey,Python,Url,Tumblr,Autohotkey,我想在tumblr中更改我的URL,但我的博客到处都有硬编码链接。我被告知可以自动更新链接,而不是浏览1000多篇文章并手动更新链接。我需要它来: 访问博客的一个页面 在文章的超链接文本中检查旧URL 如果存在,请单击编辑以编辑帖子内容 单击文本区域中的URL 单击将出现的弹出窗口中的编辑 用新的URL替换弹出窗口中的URL的一部分(例如:如果我们从开始,那么我们希望) 单击弹出窗口上的“完成”以关闭它并保存URL更改 保存对文章的更改 继续查看页面上的下一篇文章 如果不再出现实例,请继续下一页
重定向
位置。替换('http://new.tumblr.com“+location.pathname);
此博客已移至。
如果您;重新阅读本文时,您已关闭JavaScript,因此可以;不能自动重定向。替换“{BlogURL}”用“http://{text:New Tumblr URL}.Tumblr.com/”在您的浏览器中;s地址栏以到达您的目的地
在自动热键中,我会使用IE COM自动化来完成工作,这是最可靠的
编辑:
坦率地说,使用浏览器自动化方法编辑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
我会调查的。非常感谢。你能展示一下你试过的吗?现在我已经在旧的URL上找到了一个重定向page@mikedidthis-我在上面的帖子中添加了我正在使用的重定向代码。我想这能完成任务。
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
}