我在使用urllib2下载csv文件时遇到问题。这是我正在使用的代码..
import cookielib
import urllib
import urllib2
import csv
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
authentication_url = login_website
payload = {
'altxuname': username,
'altxpass': password,
'Submit': 'Login'
}
urllib2.install_opener(opener)
data = urllib.urlencode(payload)
opener.open(authentication_url, data)
resp = opener.open(csv_url)
contents = csv.reader(resp)
with open('logintest.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerows(contents)
f.close()
我在不需要登录的网站上测试了csv文件的代码。我也测试了登录部分,并且能够登录并导航到网页,但是当我尝试组合两个登录然后尝试下载文件时,我在csv文件中获得的是网页的html。我用于csv_url的URL是下载文件的直接链接。任何帮助都是极好的!谢谢!
修改 这是按钮单击的代码..
<input name="exportcsv" type="button" class="button" onclick="location.href='/techforce/report.php?report_id=129&rf_67=&rf_31=08%2F04%2F2014&rt_31=&rf_448=&rt_448=&rf_64=&rt_64=&rf_387=c.state&rf_387_Op=equals&rf_387_Value=&rf_148=c.state&rf_148_Op=equals&rf_148_Value=&rf_223_Op=&rf_55_Op=&rf_46_Op=&Submit=Display+Report&export=csv&csv=true'" value="Export CSV">
答案 0 :(得分:0)
这是网站特定的问题,没有通用解决方案。但是尝试使用mechanize库(在Python中),你可以快速解决这类问题。 Mechanize的工作方式类似于代码中的浏览器。