StackOverflow 問題執行緒上的每個答案或評論都有一個唯一的 URL。我們如何使用該 URL 和Invoke-WebRequest(或其他工具)來捕獲該答案的內容或迷你 Markdown 中的評論,并從中獲取一些有用的資訊?
一些答案包含完整的腳本,我有時希望將這些腳本自動檢索到.ps1各種系統上的檔案中。例如,給定此 URL https://superuser.com/questions/176624/linux-top-command-for-windows-powershell/1426271#1426271,我想只獲取 PowerShell 代碼部分并將其通過管道傳輸到檔案中稱為mytop.ps1。
uj5u.com熱心網友回復:
您可以使用StackExchange REST API來提取問題,特別是answers-by-id。
它仍然沒有為您提供降價,但使用 JSON 回應而不是決議整個頁面源代碼更容易深入到答案的正文。實際上,我認為它為答案正文輸出 HTML 甚至比 markdown 更好,因為您始終可以獲取<code>元素,而不必決議可以使用 markdown 格式化代碼的所有不同方式(例如代碼圍欄和縮進)。
$answer = Invoke-RestMethod 'https://api.stackexchange.com/2.3/answers/1426271?site=superuser&filter=withbody'
$codes = [RegEx]::Matches( $answer.items.body, '(?s)<code>(.*?)</code>' ).ForEach{ $_.Groups[1].Value }
# This gives you the PowerShell script for this particular answer only!
$codes[6]
由于可能有多個<code>元素,您可能希望使用啟發式方法來確定包含 PowerShell 腳本的元素,例如按長度排序并檢查代碼是否包含多行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/532937.html
