CSV下载仅使用Urllib2生成网页html

时间:2014-08-04 17:29:38

标签: python python-2.7 urllib2

我在使用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&amp;rf_67=&amp;rf_31=08%2F04%2F2014&amp;rt_31=&amp;rf_448=&amp;rt_448=&amp;rf_64=&amp;rt_64=&amp;rf_387=c.state&amp;rf_387_Op=equals&amp;rf_387_Value=&amp;rf_148=c.state&amp;rf_148_Op=equals&amp;rf_148_Value=&amp;rf_223_Op=&amp;rf_55_Op=&amp;rf_46_Op=&amp;Submit=Display+Report&amp;export=csv&amp;csv=true'" value="Export CSV">

1 个答案:

答案 0 :(得分:0)

这是网站特定的问题,没有通用解决方案。但是尝试使用mechanize库(在Python中),你可以快速解决这类问题。 Mechanize的工作方式类似于代码中的浏览器。