したがって、基本的に、このファイルをダウンロードするためにさまざまな方法を試しました。Python と wget の両方の実装があります。そして、実際、この時点で、どちらが仕事に就くことができるかはあまり気にしません。
どちらもまったく同じことをします...ダウンロードしようとしているファイルではなく、Webページをダウンロードします。それでも、提供された正確な URL を Firefox に投稿すると、すぐにダウンロードするように求められます。
必要なこと: 1. Web サイトに接続します (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)
次に、My Wget Code で、Web サイトの 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 時間以上の作業を簡単に無駄にしてしまうので、大喜びです。
注ユーザー名とパスワードは、セキュリティ上の理由から隠されています