html - Python Mechanize: How to download a file custom buttons -
i'm trying download file website in page source there no tags related buttons or forms. using custom buttons. page source like
var labels={"kind":"template type","format":"file format","btn_generate":"generate template","btn_cancel":"cancel","btn_start":"start import","btn_back":"back overview","legend":"mandatory fields <span class='marked'>blue</span>"};
from above code "btn_generate":"generate template"
button.
normally if click on button in webpage download file.
i'm parsing page source , getting value of "btn_generate"
"generate template"
.
now want apply button click on "btn_generate":"generate template"
download file. as, not sure whether possible or not.
my code:
#!/usr/bin/python import mechanize cookies import * mycookie = cookiee().get_cookies() req = six.moves.urllib.request.request( url='https://xxxx.xxxxxxx.xxx/xxx-xxx/import?page=1', headers={ 'cookie': '; '.join([k+'='+v k, v in mycookie.items()]) } ) response = six.moves.urllib.request.urlopen(req) text = bytes(response.read()).decode('utf-8', errors="replace") javascript = re.findall( r'<script language=\'javascript\'>(.+?)</script>', text, flags=re.s )[0] jvars = javascript.split('\nvar ') labels = [x x in jvars if x.startswith("labels")][0] jsonoverview = json.loads(labels.split('=', 1)[1].rstrip(';\n')) btn_name = jsonoverview['btn_generate'] print('btn_name',btn_name) br = mechanize.browser()
html page as:
<div id="contentwrapper"><table id="pagetitlebox"><tbody><tr><td><div id="backbtn" class="goog-custom-button goog-inline-block" role="button" tabindex="0" title="back overview" style="-webkit-user-select: none;"><div class="goog-inline-block goog-custom-button-outer-box"><div class="goog-inline-block goog-custom-button-inner-box"><div class="back-icon goog-inline-block"></div><span></span></div></div></div></td><td><div id="pagetitle">import template</div></td></tr></tbody></table><table id="topcontrolbox"><tbody><tr><td class="rlabel dropbox">template type:</td><td class="dropbox"><div id="isnewticketdropdownbox"><div class="goog-inline-block goog-menu-button" title="" role="button" tabindex="0" aria-haspopup="true" style="-webkit-user-select: none;"><div class="goog-inline-block goog-menu-button-outer-box"><div class="goog-inline-block goog-menu-button-inner-box"><div class="goog-inline-block goog-menu-button-caption">for updating</div><div class="goog-inline-block goog-menu-button-dropdown"> </div></div></div></div></div></td><td class="rlabel dropbox">file format:</td><td class="dropbox"><div id="formatdropdownbox"><div class="goog-inline-block goog-menu-button" title="" role="button" tabindex="0" aria-haspopup="true" style="-webkit-user-select: none;"><div class="goog-inline-block goog-menu-button-outer-box"><div class="goog-inline-block goog-menu-button-inner-box"><div class="goog-inline-block goog-menu-button-caption">excel</div><div class="goog-inline-block goog-menu-button-dropdown"> </div></div></div></div></div></td><td><div id="startbtn" class="goog-custom-button goog-inline-block" role="button" tabindex="0" title="start import" style="-webkit-user-select: none;"><div class="goog-inline-block goog-custom-button-outer-box"><div class="goog-inline-block goog-custom-button-inner-box"><div class="action-icon goog-inline-block"></div><span>start import</span></div></div></div></td></tr></tbody></table><div class="btnpanel"><table><tbody><tr><td><div id="generatebtn" class="goog-custom-button goog-inline-block" role="button" tabindex="0" title="generate template" style="-webkit-user-select: none;"><div class="goog-inline-block goog-custom-button-outer-box"><div class="goog-inline-block goog-custom-button-inner-box"><div class="save-icon goog-inline-block"></div><span>generate template</span></div></div></div></td></tr></tbody></table></div></div>
Comments
Post a Comment