我正在尝试将R代码转换为python代码。我目前遇到麻烦。 (代码片段1)。
我尝试了所有形式的请求,并且python代码正在创建一个没有内容的空白文件。
请求,wget,urllib.requests等,等等。
(1)
downloader = download.file(url = 'https://www.equibase.com/premium/eqbLateChangeXMLDownload.cfm',destfile = 'C:/Users/bnewell/Desktop/test.xml",quiet = TRUE) # DOWNLOADING XML FILE FROM SITE
unfiltered = xmlToList(xmlParse(download_file))
(2)
import requests
URL = 'https://www.equibase.com/premium/eqbLateChangeXMLDownload.cfm'
response = requests.head(URL, allow_redirects=True)
答案 0 :(得分:1)
import requests, shutil
URL = 'https://www.equibase.com/premium/eqbLateChangeXMLDownload.cfm'
page = requests.get(URL, stream=True, allow_redirects=True,
headers={'user-agent': 'MyPC'})
with open("File.xml", "wb") as f:
page.raw.decode_content = True
shutil.copyfileobj(page.raw, f)
由于不确定的原因,手动在文件下载中添加一个user-agent
标头。
我使用shutil
下载可以由page.iter_content
替换的原始文件
答案 1 :(得分:0)
尝试实际get
请求
import requests
URL = 'https://www.equibase.com/premium/eqbLateChangeXMLDownload.cfm'
response = requests.get(URL, headers={'allow_redirects':True})
然后,您可以使用response.raw
,response.text
,response.content
等访问正在下载的内容。
有关更多详细信息,请参见实际的docs
答案 2 :(得分:0)
尝试这样的方法:
import os
import requests
url = "htts://......"
r = requests.get(url , stream=True, allow_redirects=True)
if r.status_code != 200:
print("Download failed:", r.status_code, r.headers, r.text)
file_path = r"C:\data\...."
with open(file_path, 'wb') as f:
for chunk in r.iter_content(chunk_size=1024 * 8):
if chunk:
f.write(chunk)
f.flush()
os.fsync(f.fileno())