Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 编辑和替换tumblr文章中的部分URL_Python_Url_Tumblr_Autohotkey - Fatal编程技术网

Python 编辑和替换tumblr文章中的部分URL

Python 编辑和替换tumblr文章中的部分URL,python,url,tumblr,autohotkey,Python,Url,Tumblr,Autohotkey,我想在tumblr中更改我的URL,但我的博客到处都有硬编码链接。我被告知可以自动更新链接,而不是浏览1000多篇文章并手动更新链接。我需要它来: 访问博客的一个页面 在文章的超链接文本中检查旧URL 如果存在,请单击编辑以编辑帖子内容 单击文本区域中的URL 单击将出现的弹出窗口中的编辑 用新的URL替换弹出窗口中的URL的一部分(例如:如果我们从开始,那么我们希望) 单击弹出窗口上的“完成”以关闭它并保存URL更改 保存对文章的更改 继续查看页面上的下一篇文章 如果不再出现实例,请继续下一页

我想在tumblr中更改我的URL,但我的博客到处都有硬编码链接。我被告知可以自动更新链接,而不是浏览1000多篇文章并手动更新链接。我需要它来:

  • 访问博客的一个页面
  • 在文章的超链接文本中检查旧URL
  • 如果存在,请单击编辑以编辑帖子内容
  • 单击文本区域中的URL
  • 单击将出现的弹出窗口中的编辑
  • 用新的URL替换弹出窗口中的URL的一部分(例如:如果我们从开始,那么我们希望)
  • 单击弹出窗口上的“完成”以关闭它并保存URL更改
  • 保存对文章的更改
  • 继续查看页面上的下一篇文章
  • 如果不再出现实例,请继续下一页
  • 重复此操作,直到到达最后一页
  • 因此,我相信我理解所需的逻辑/步骤,但我的缺陷在于能够执行它们。实现这一点的最佳语言或方法是什么?我是一个完全的编码新手,所以我更喜欢直接的东西。有人向我提到Python。也可能是自动热键

    如果这不是正确的提问地点,我深表歉意

    目前我在旧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
    }