python mechanizeを使用して、ファイルURLまたはファイル名がわからないときにExcelファイルをトリガーするaspnetForm submitControlからファイルを取得する方法を教えてください。 Excelファイルを使用してサイトのpython mechanize - ファイルダウンロードをトリガーするaspnetForm submitControlからファイルを取得する
URL:http://www.ncysaclassic.com/TTSchedules.aspx?tid=NCFL&year=2012&stid=NCFL&syear=2012&div=U11M01
私は印刷エクセル「ボタン」でダウンロードしたファイルを取得しようとしています。
これまでのところ、私が持っている:
r = br.open('http://www.ncysaclassic.com/TTSchedules.aspx?tid=NCFL&year=2012&stid=NCFL&syear=2012&div=U11M01')
html = r.read()
# Show the html title
print br.title()
# Show the available forms
for f in br.forms():
print f
br.select_form('aspnetForm')
print '\n\nSubmitting...\n'
br.submit("ctl00$ContentPlaceHolder1$btnExtractSched")
print 'Response...\n'
print br.response().info()
print br.response().read
print 'still alive...\n'
for prop, value in vars(br.response()).iteritems():
print 'Property:', prop, ', Value: ', value
print 'myfile...\n'
myfile = br.response().read
と私はこの出力を得る:
Submitting...
Response...
Content-Type: application/vnd.ms-excel
Last-Modified: Thu, 27 Sep 2012 20:19:10 GMT
Accept-Ranges: bytes
ETag: W/"6e27615aed9ccd1:0"
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Thu, 27 Sep 2012 20:19:09 GMT
Connection: close
Content-Length: 691200
<bound method response_seek_wrapper.read of <response_seek_wrapper at 0x2db5248L whose wrapped object = <closeable_response at 0x2e811c8L whose fp = <socket._fileobject object at 0x0000000002D79930>>>>
still alive...
Property: _headers , Value: Content-Type: application/vnd.ms-excel
Last-Modified: Thu, 27 Sep 2012 20:19:10 GMT
Accept-Ranges: bytes
ETag: W/"6e27615aed9ccd1:0"
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Thu, 27 Sep 2012 20:19:09 GMT
Connection: close
Content-Length: 691200
Property: _seek_wrapper__read_complete_state , Value: [False]
Property: _seek_wrapper__have_readline , Value: True
Property: _seek_wrapper__is_closed_state , Value: [False]
Property: _seek_wrapper__pos , Value: 0
Property: wrapped , Value: <closeable_response at 0x2e811c8L whose fp = <socket._fileobject object at 0x0000000002D79930>>
Property: _seek_wrapper__cache , Value: <cStringIO.StringO object at 0x0000000002E8B0D8>
は、私は非常に近いだようだ... Content-Typeの注意:アプリケーション/ vnd.ms-Excelを
私は次に何をするべきか分かりません。私のファイルはどこにありますか?そして、後でアクセスできるように、ポインタをどのように取得してローカルに保存しますか?
アップデート:私は使用
DIR()...応答(属性)、その後、メソッドのカップルを試してみました/
print '\ndir(br.response())\n'
for each in dir(br.response()):
print each
print '\nresponse info...\n'
print br.response().info()
print '\nresponse geturl\n'
print br.response().geturl()
のメソッドのリストを取得するには、私はこれを取得します出力...
dir(br.response())
__copy__
__doc__
__getattr__
__init__
__iter__
__module__
__repr__
__setattr__
_headers
_seek_wrapper__cache
_seek_wrapper__have_readline
_seek_wrapper__is_closed_state
_seek_wrapper__pos
_seek_wrapper__read_complete_state
close
get_data
geturl
info
invariant
next
read
readline
readlines
seek
set_data
tell
wrapped
xreadlines
response info...
Date: Thu, 27 Sep 2012 20:55:02 GMT
ETag: W/"fa759b5df29ccd1:0"
Server: Microsoft-IIS/7.5
Connection: Close
Content-Type: application/vnd.ms-excel
X-Powered-By: ASP.NET
Accept-Ranges: bytes
Last-Modified: Thu, 27 Sep 2012 20:55:03 GMT
Content-Length: 691200
response geturl
http://www.ncysaclassic.com/photos/pdftemp/ScheduleExcel165502.xls
私はすでにこのファイルを私のbr.responseに入れていると思います。私はそれをどのように抽出するのか分からない!助けてください。私は近いそれはそうなってる
... – hokie85
これらの両方が私の仕事: 印刷 '\ nAttemptingファイル1を書くこと... \ n' の #このここのhttpを見つけました:// ( "/ path/to/someFile"、 "wb").write(urllib2.urlopen( "http:// http://www.wlllib2.urlopen.jp/wiki/%E3%83%A4%E3%83%A8%E3%83 ( "C:\ Users \ gregb \ Downloads \ download.xls"、 "wb")を開く(br.response()。read()) 印刷 '\ nファイル2を書き込もうとしています... \ n' open( "C:\ U srs \ gregb \ Downloads \ urllib2_urlopen.xls "、" wb ").write(urllib2.urlopen(" http://www.ncysaclassic.com/photos/pdftemp/ScheduleExcel172625.xls ").read()) – hokie85