如何通过 python 以编程方式提取 Azure IP 范围 json 文件?
How can I extract Azure IP ranges json file programatically through python?
我想从https://www.microsoft.com/en-us/download/confirmation.aspx?id=56519下载ipranges.json
(每周更新)
我有这个 python 代码可以永远保持 运行。
import wget
URL = "https://www.microsoft.com/en-us/download/confirmation.aspx?id=56519"
response = wget.download(URL, "ips.json")
print(response)
如何在 Python 中下载 JSON 文件?
因为https://www.microsoft.com/en-us/download/confirmation.aspx?id=56519
是自动触发javascript下载的link,所以你只下载页面,而不是文件
如果您检查下载的文件,源将如下所示
我们意识到文件会在一段时间后发生变化,所以我们必须以通用方式抓取它
为了方便,我不会使用wget,这里的2个库是requests
请求页面和下载文件,beaufitulsoup
解析html
# pip install requests
# pip install bs4
import requests
from bs4 import BeautifulSoup
# request page
URL = "https://www.microsoft.com/en-us/download/confirmation.aspx?id=56519"
page = requests.get(URL)
# parse HTML to get the real link
soup = BeautifulSoup(page.content, "html.parser")
link = soup.find('a', {'data-bi-containername':'download retry'})['href']
# download
file_download = requests.get(link)
# save in azure_ips.json
open("azure_ips.json", "wb").write(file_download.content)
我想从https://www.microsoft.com/en-us/download/confirmation.aspx?id=56519下载ipranges.json
(每周更新)
我有这个 python 代码可以永远保持 运行。
import wget
URL = "https://www.microsoft.com/en-us/download/confirmation.aspx?id=56519"
response = wget.download(URL, "ips.json")
print(response)
如何在 Python 中下载 JSON 文件?
因为https://www.microsoft.com/en-us/download/confirmation.aspx?id=56519
是自动触发javascript下载的link,所以你只下载页面,而不是文件
如果您检查下载的文件,源将如下所示
我们意识到文件会在一段时间后发生变化,所以我们必须以通用方式抓取它
为了方便,我不会使用wget,这里的2个库是requests
请求页面和下载文件,beaufitulsoup
解析html
# pip install requests
# pip install bs4
import requests
from bs4 import BeautifulSoup
# request page
URL = "https://www.microsoft.com/en-us/download/confirmation.aspx?id=56519"
page = requests.get(URL)
# parse HTML to get the real link
soup = BeautifulSoup(page.content, "html.parser")
link = soup.find('a', {'data-bi-containername':'download retry'})['href']
# download
file_download = requests.get(link)
# save in azure_ips.json
open("azure_ips.json", "wb").write(file_download.content)