below是公开访问的链接
Https://assetplanner.com/files/? B2TLBII6ILQ1MDIWOVOXMDAYIIIWIDWLKIJOIMJGWNDQ1IIIWIZHQIOJE3MZG2NMTB9MTB9.D29XUB8Q9XUB8Q914DJMZNDJMZNDCZTP5DY1X-PKIFAWHRPIFAWHRPIPIPIPIQ9KDUQUQ® 我尝试了urlretrieve什么无所作为 我累了urllib请求在我发现的示例中从网站上获取时,哪个可以工作,但是当我在网站上尝试时,我想要
import urllib.request
url='https://assetplanner.com/files/ServiceRequest/153/changed.jpg?token=#####'
urllib.request.urlretrieve(url, fr"C:\Users\location\xattempt.png")
这一个返回14 KB文件,刚刚命名为Xattempt.png我尝试了请求
import requests
url = 'https://tor.assetplanner.com/service_request?ID=616'
r = requests.get(url)
print(r.json())
并要求另一种方式
import requests
url = 'https://assetplanner.com/files/ServiceRequest/230/changed.pdf?token=#####'
response = requests.get(url)
file_Path = 'research_Paper_1.pdf'
if response.status_code == 200:
with open(file_Path, 'wb') as file:
file.write(response.content)
print('File downloaded successfully')
else:
print('Failed to download file')
并要求另一种方式
import requests
url = "https://assetplanner.com/files/ServiceRequest/230/changed.pdf?token=#####"
query_parameters = {"downloadformat": "pdf"}
response = requests.get(url, params=query_parameters)
response.url
response.ok
response.status_code
with open("#####.pdf", mode="wb") as file:
file.write(response.content)
,但它们都产生了一个不起作用的14KB文档。 我尝试了wget
import wget
url = 'https://tor.assetplanner.com/service_request?ID=153'
wget.download(url, 'img_#####.jpg')
i最终以14千克img _ #####。jpg
我知道这很困难,但是很明显我在做错什么? 有人知道一种方法吗? 我正在使用python制作一个程序,其中您可以在其中输入报告号,然后将转到这些报告,然后下载文件,PDF或JPG。我认为这可能与我需要登录有关,公开访问的链接不需要。
看起来这个问题与身份验证需要下载文件有关。由于文件是登录的后面,因此您需要首先对会话进行身份验证,然后使用该会话来提出文件请求。您需要将登录凭据发送到网站并维护一个会话以存储cookie(这样,您可以在发布文件请求时登录)。一旦您登录,请使用该会话发送文件的请求。使用请求库:
# Start a session to maintain cookies
session = requests.Session()
# Login to the website
login_url = 'https://assetplanner.com/login'
login_data = {
'username': 'your_username',
'password': 'your_password'
}
login_response = session.post(login_url, data=login_data)
if login_response.ok:
print("Login successful!")
else:
print("Login failed!")
# Now, download the file using the session
file_url = 'https://assetplanner.com/files/ServiceRequest/616/img_20241021093256.jpg?token=#####'
response = session.get(file_url)
if response.status_code == 200:
with open('downloaded_image.jpg', 'wb') as file:
file.write(response.content)
print("File downloaded successfully!")
else:
print(f"Failed to download file. Status code: {response.status_code}")
这将在会话中维护您的登录并允许您下载文件。 我希望这会有所帮助!