[英]Downloading a File with Python Or Wget with authentication
因此,基本上我已經嘗試了許多方法來下載此文件。 我同時擁有Python和wget實現。 實際上,在這一點上,我根本不在乎我可以去上哪一個。
兩者都做同樣的事情...他們下載網頁,而不是我要下載的文件。 但是,當我將確切的URL發布到firefox中時,它立即提示我下載。
需要發生什么:1.連接到網站(即使ssl搞砸了?)2.進行身份驗證3.單擊第一個鏈接,該鏈接重定向到下載文件4.下載該文件
首先我的python代碼:
import httplib2
import urllib2
from BeautifulSoup import BeautifulSoup, SoupStrainer
http = httplib2.Http()
http.add_credentials('username', 'password')
status, response = http.request('https://traveler.pha.phila.gov:8443/servlet/traveler')
counter = 0
Androidlink = ''
Windowslink = ''
Iphonelink = ''
for link in BeautifulSoup(response, parseOnlyThese=SoupStrainer('a')):
if link.has_key('href'):
if counter == 2:
Iphonelink = link['href']
counter = counter + 1
if counter == 1:
Windowslink = link['href']
counter = counter + 1
if counter == 0:
Androidlink = link['href']
counter = counter + 1
url = 'https://traveler.pha.phila.gov:8443' + Androidlink
print url
import requests
from requests.auth import HTTPDigestAuth
r = requests.get(url,verify=False, auth=HTTPDigestAuth('username', 'password'))
print len(r.content)
其次,我的Wget代碼,只需下載網站的html。 又不是我想要的
wget --no-check-certificate "https://traveler.pha.phila.gov:8443/servlet/traveler?action=GET&deviceType=700&address=https%3A%2F%2Ftraveler.pha.phila.gov%3A8443%2Fservlet%2Ftraveler&userId=desantj&redirectURL=%2Ftraveler%2FLotusTraveler%2Fandroid%2FLotusTraveler.apk" --http-user=username --http-passwd=password
如果我可以讓他們中的任何一個恢復該文件(APK文件),我都會非常高興,因為我很容易浪費了6個小時以上的時間
注意用戶名和密碼出於安全原因而被隱藏
檢查wget -O LotusTraveler.apk“ https://traveler.pha.phila.gov:8443/servlet/traveler?action=GET&deviceType=700&address=https%3A%2F%2Ftraveler.pha.phila.gov%3A8443%2Fservlet% 2Ftraveler&userId = desantj&redirectURL =%2Ftraveler%2FLotusTraveler%2Fandroid%2FLotusTraveler.apk“ --http-user =用戶名--http-passwd =密碼
**編輯:對不起,我應該讀得更好。 再次抱歉。.盡管這不是為什么的問題,但我確實(與Google一起)找到了許多相似/相同文件的下載位置
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.