使用Python或Wget下载文件并进行身份验证

时间:2013-01-24 18:26:24

标签: python windows hyperlink beautifulsoup wget

所以基本上我已经尝试了很多方法来下载这个文件。我有两个Python 和wget实现。而且在这一点上,我可以更少关心我可以开始工作。

两者都做同样的事情......他们下载网页,而不是我试图下载的文件。然而,当我发布提供给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 Code,只需下载网站的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个多小时磨这个

注意出于安全原因隐藏了用户名和密码

1 个答案:

答案 0 :(得分:1)

检查     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 = username --http-passwd = password

**编辑:对不起,我应该读得更好。再次对不起..虽然这不是问题的原因,但我确实找到(有谷歌)类似/相同文件的大量下载位置