本文将介绍Python-请求/RoboBrowser-ASPXPOSTJavaScript的详细情况,特别是关于python请求http的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面
本文将介绍Python-请求/ RoboBrowser-ASPX POST JavaScript的详细情况,特别是关于python请求http的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于 Sorry, JavaScript must be enabled. Sorry, JavaScript must be enabled. Sorry, JavaScript must be enabled. 我正在移植一个使用curl的bash脚本,并将代码中的有效载荷POST到URL并正常工作。基本的问题是,使用robobrowser,我在使用页面表单发布时遇到了麻烦。 逐步浏览网站: 我已经能够成功通过网站身份验证并使用RoboBrowser和Requests + bs4执行GET,但是我对回发页面本身感到困惑。 使用RoboBrowser(liboncall.py) 登录到站点并显示URL以确认我们位于: 打开“ /FindMe.aspx”: 最初,“ / FindMe.aspx”将加载一个表单和一个“电话列表”( 删除不需要的表单字段,填写表单并提交: 验证该页面已更新并且具有列表项目“工作”: 获取“ PhoneLists.aspx”表单,删除不需要的字段,填写并提交。 查看帖子以查看是否加载了用户列表。在这种情况下,它没有加载用户列表。 如果 成功,则上述内容将返回: 连同表格中的以下项目( 在这家合资公司中,我发现Robobrowser并未包括“ 我还缺少其他东西吗?RoboBrowser 经过大量的搜寻之后,重新发布有关reddit的帮助,然后随机绊倒这个RoboBrowser问题,该问题向我展示了如何正确使用’fields.add_field()’方法;问题已经解决了。 例如 用这些值更新表单后,提交给“ PhoneLists.aspx”的表单将按预期工作。 我希望其他必须抓取ASPX网站的人都能发现这一点。祝大家开心! Sorry, JavaScript must be enabled. Sorry, JavaScript must be enabled. Sorry, JavaScript must be enabled. Sorry, JavaScript must be enabled. 我在 Adobe Acrobat 文档中找到了大量示例。
例如。 Net.HTTP.request... 表单处理程序如下所示: 手动单击“下一步”链接时的HTTP跟踪显示__EVENTTARGET为空?我可以在其他刮刀上找到的所有婴儿床都显示出__EVENTTARGET的操纵作为处理下一页的方式. 实际上,我不确定我想要抓取的页面是如何加载下一页的?无论我在刮刀上扔什么,它都只能设法加载第一个结果页面. (即使能够改变每页的结果数量也很有用,但我也看不出怎么做!) 那么 – 关于如何刮取第N个结果页面的任何想法N> 0? 首先我们用mechanize打开结果页面 然后我们选择aspnet表单: 表单有5个提交按钮 – 我们想提交将我们带到下一个结果页面的按钮: 表单中的其他提交按钮是: 在机械化中我们可以得到这样的表单信息: 我正在尝试实现 BK 的标准(无枢轴,无排序)版本。我不是特别了解算法(我还没有找到很好的解释......)但我认为伪代码很简单,所以我试了一下。它不起作用。 cliques 数组(应该包含形成的最大 cliques)通常包含 4 个重复值的长数组。 因为我不明白它是如何直观地工作的,所以我在调试时很快就迷路了。
如果有人能给我一个很好的资源来解释这个算法,向我解释它,或者告诉我下面的代码有什么问题,我将不胜感激: 暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中! 如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。 小编邮箱:dio#foxmail.com (将#修改为@) 关于Python-请求/ RoboBrowser-ASPX POST JavaScript和python请求http的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于 Sorry, JavaScript must be enabled. 本文标签:
Change your browser options, then try again什么意思、Adobe acrobat javascript 获取 IP 地址、asp.net – 使用Python Mechanize进行屏幕分析aspx – Javascript表单提交、Bron-Kerbosch JavaScript 实现的知识。
Change your browser options, then try again什么意思">
Change your browser options, then try again什么意思Python-请求/ RoboBrowser-ASPX POST JavaScript(python请求http)
#!/usr/bin/pythonfrom robobrowser import RoboBrowserfrom bs4 import BeautifulSoup as BSoc_mailbox = ''123456''oc_password_hashed = ''ABCDEFG''base_uri = ''http://example.com''auth_uri = oc_base_uri + ''/SubLogin.aspx''find_uri = oc_base_uri + ''/FindMe.aspx''phne_uri = oc_base_uri + ''/PhoneLists.aspx''p_auth_payload = { ''SubLoginControl:javascriptTest'': ''true'', ''SubLoginControl:mailbox'': mailbox, ''SubLoginControl:phoneNumber'': '''', ''SubLoginControl:password'': password_hashed, ''SubLoginControl:btnLogOn'': ''Logon'', ''SubLoginControl:webLanguage'': ''en-US'', ''SubLoginControl:initialLanguage'': ''en-US'', ''SubLoginControl:errorCallBackNumber'': ''Entered telephone number contains non-dialable characters.'', ''SubLoginControl:cookieMailbox'': ''mailbox'', ''SubLoginControl:cookieCallbackNumber'': ''callbackNumber'', ''SubLoginControl:serverDomain'': '''' }p_find_payload = { ''FindMeControl:enableFindMe'': ''on'', ''FindMeControl:MasterDataControl:focusElement'': '''', ''FindMeControl:MasterDataControl:masterList:_ctl0:enabled'': ''on'', ''FindMeControl:MasterDataControl:masterList:_ctl0:itemGuid'': '''', ''FindMeControl:MasterDataControl:hidSelectedScheduleName'': '''', ''FindMeControl:MasterDataControl:hidbtnStatus'': '''', ''FindMeControl:MasterDataControl:hidScheduleXML'': '''', ''FindMeControl:MasterDataControl:tempScheduleXML'': '''', ''FindMeControl:MasterDataControl:hidSelectedScheduleGUID'': '''', ''FindMeControl:MasterDataControl:hidChangedScheduleList'': '''', ''FindMeControl:btnPhoneLists'': ''Phone Lists'', ''FindMeControl:enableFindMeHidden'': '''', ''FindMeControl:applySet'': ''false'' }p_phne_payload = { ''__EVENTARGUMENT'': '''', ''__EVENTTARGET'': ''PhoneListsControl$MasterDataControl$masterList$_ctl0$SelectButton'', ''PhoneListsControl:MasterDataControl:focusElement'': '''', ''PhoneListsControl:MasterDataControl:masterList:_ctl0:itemGuid'': '''', ''PhoneListsControl:MasterDataControl:hidSelectedScheduleName'': '''', ''PhoneListsControl:MasterDataControl:hidbtnStatus'': '''', ''PhoneListsControl:MasterDataControl:hidScheduleXML'': '''', ''PhoneListsControl:MasterDataControl:tempScheduleXML'': '''', ''PhoneListsControl:MasterDataControl:hidSelectedScheduleGUID'': '''', ''PhoneListsControl:MasterDataControl:hidChangedScheduleList'': '''', ''PhoneListsControl:applySet'': ''false'' }def auth(mailbox, password): browser = RoboBrowser(history=False) browser.open(oc_auth_uri) signin = browser.get_form(id=''aspnetForm'') signin[''SubLoginControl:mailbox''].value = mailbox signin[''SubLoginControl:password''].value = password signin[''SubLoginControl:javascriptTest''].value = ''true'' signin[''SubLoginControl:btnLogOn''].value = ''Logon'' signin[''SubLoginControl:webLanguage''].value = ''en-US'' signin[''SubLoginControl:initialLanguage''].value = ''en-US'' signin[''SubLoginControl:errorCallBackNumber''].value = ''Entered+telephone+number+contains+non-dialable+characters.'' signin[''SubLoginControl:cookieMailbox''].value = ''mailbox'' signin[''SubLoginControl:cookieCallbackNumber''].value = ''callbackNumber'' signin[''SubLoginControl:serverDomain''].value = '''' browser.submit_form(signin) return browser
In [20]: from liboncall import *In [21]: m = auth(oc_mailbox, oc_password_hashed)In [22]: m.urlOut[22]: u''http://example.com/OptionsSummary.aspx''
In [24]: m.open(find_uri)In [25]: m.urlOut[25]: u''http://example.com/FindMe.aspx''
FindMeControl:btnPhoneLists
)按钮。In [26]: m.select(''title'')Out[26]: [<title>Find Me</title>]In [27]: form_find_a = m.get_form(action="FindMe.aspx")In [28]: for i in form_find_a.keys(): print(i) ....: __VIEWSTATE __EVENTVALIDATION FindMeControl:enableFindMe FindMeControl:MasterDataControl:focusElement FindMeControl:MasterDataControl:masterList:_ctl0:enabled FindMeControl:MasterDataControl:masterList:_ctl0:itemGuid FindMeControl:MasterDataControl:btnAdd FindMeControl:MasterDataControl:btnDelete FindMeControl:MasterDataControl:btnRename FindMeControl:MasterDataControl:btnCancel FindMeControl:MasterDataControl:btnEnter FindMeControl:MasterDataControl:btnUpdate FindMeControl:MasterDataControl:hidSelectedScheduleName FindMeControl:MasterDataControl:hidbtnStatus FindMeControl:MasterDataControl:hidScheduleXML FindMeControl:MasterDataControl:tempScheduleXML FindMeControl:MasterDataControl:hidSelectedScheduleGUID FindMeControl:MasterDataControl:hidChangedScheduleList FindMeControl:btnApply FindMeControl:btnSchedules FindMeControl:btnPhoneLists FindMeControl:enableFindMeHidden FindMeControl:applySet
In [29]: find_remove = (''FindMeControl:MasterDataControl:btnAdd'',''FindMeControl:MasterDataControl:btnDelete'',''FindMeControl:MasterDataControl:btnRename'',''FindMeControl:MasterDataControl:btnCancel'',''FindMeControl:MasterDataControl:btnEnter'',''FindMeControl:MasterDataControl:btnUpdate'',''FindMeControl:btnApply'',''FindMeControl:btnSchedules'')In [30]: for i in find_remove: form_find_a.fields.pop(i)In [31]: form_find_a[''FindMeControl:enableFindMe''].value = ''on''form_find_a[''FindMeControl:MasterDataControl:focusElement''].value = ''''form_find_a[''FindMeControl:MasterDataControl:masterList:_ctl0:enabled''].value = ''on''form_find_a[''FindMeControl:MasterDataControl:masterList:_ctl0:itemGuid''].value = ''''form_find_a[''FindMeControl:MasterDataControl:hidSelectedScheduleName''].value = ''''form_find_a[''FindMeControl:MasterDataControl:hidbtnStatus''].value = ''''form_find_a[''FindMeControl:MasterDataControl:hidScheduleXML''].value = ''''form_find_a[''FindMeControl:MasterDataControl:tempScheduleXML''].value = ''''form_find_a[''FindMeControl:MasterDataControl:hidSelectedScheduleGUID''].value = ''''form_find_a[''FindMeControl:MasterDataControl:hidChangedScheduleList''].value = ''''form_find_a[''FindMeControl:btnPhoneLists''].value = ''Phone Lists''form_find_a[''FindMeControl:enableFindMeHidden''].value = ''''form_find_a[''FindMeControl:applySet''].value = ''false''Out [31]: ...In [32]: m.submit_form(form_find_a)
In [33]: m.parsed.find(''title'')Out[33]: <title>Phone Lists</title>In [34]: m.parsed.find(''a'', id=''PhoneListsControl_MasterDataControl_masterList__ctl0_SelectButton'')Out[34]: <ahref="javascript:__doPostBack(''PhoneListsControl$MasterDataControl$masterList$_ctl0$SelectButton'','''')" id="PhoneListsControl_MasterDataControl_masterList__ctl0_SelectButton" onclick="javascript:onClick();">Work</a>
In [35]: form_find_b = m.get_form(action=''PhoneLists.aspx'')In [36]: phne_remove = ( ''PhoneListsControl:MasterDataControl:btnAdd'', ''PhoneListsControl:MasterDataControl:btnDelete'', ''PhoneListsControl:MasterDataControl:btnRename'', ''PhoneListsControl:MasterDataControl:btnCancel'', ''PhoneListsControl:MasterDataControl:btnEnter'', ''PhoneListsControl:MasterDataControl:btnUpdate'', ''PhoneListsControl:btnApply'', ''PhoneListsControl:btnBack'')In [37]: for i in phne_remove: form_find_b.fields.pop(i)In [38]: form_find_b[''PhoneListsControl:MasterDataControl:focusElement''].value = '''' form_find_b[''PhoneListsControl:MasterDataControl:hidChangedScheduleList''].value = ''''form_find_b[''PhoneListsControl:MasterDataControl:hidScheduleXML''].value = ''''form_find_b[''PhoneListsControl:MasterDataControl:hidSelectedScheduleGUID''].value = ''''form_find_b[''PhoneListsControl:MasterDataControl:hidSelectedScheduleName''].value = ''''form_find_b[''PhoneListsControl:MasterDataControl:hidbtnStatus''].value = ''''form_find_b[''PhoneListsControl:MasterDataControl:masterList:_ctl0:itemGuid''].value = ''''form_find_b[''PhoneListsControl:MasterDataControl:tempScheduleXML''].value = ''''form_find_b[''PhoneListsControl:applySet''].value = ''false''In [39]: m.submit_form(form_find_b)
In [40]: m.parsed.findAll(''div'', id=''PhoneListsControl_phoneListMembersText'')Out[41]: [<divid="PhoneListsControl_phoneListMembersText"></div>]
<div id="PhoneListsControl_phoneListMembersText"> Work </div>
PhoneListsControl_phoneListDetail
):<input name="PhoneListsControl:phoneListDetail:_ctl2:number" type="text" value="95551234567" maxlength="50" id="PhoneListsControl_phoneListDetail__ctl2_number" onkeyup="enableApplyButton(''PhoneListsControl_'')">...<input name="PhoneListsControl:phoneListDetail:_ctl3:number" type="text" value="95551236789" maxlength="50" id="PhoneListsControl_phoneListDetail__ctl2_number" onkeyup="enableApplyButton(''PhoneListsControl_'')">...
PhoneLists.aspx”中的所有必需的formdata,以便按预期方式工作(''__EVENTTARGET'':''PhoneListsControl$MasterDataControl$masterList$_ctl0$SelectButton''
和__EVENTARGUMENT
)。设置参数然后执行操作submit_form(form_find_b)
也无法获得预期的结果。我想知道add_field()
fromrobobrowser.forms.form
是否会起作用,但是我不理解如何正确利用它(如果要按我的意愿使用它,例如,将__EVENTTARGET
和__EVENTARGUMENT
隐藏的输入字段添加到表单中)。
/请求是否不支持此类帖子?难道形式需要JavaScript提到执行在这里与机械化?答案1
小编典典 解决了
b_e_arg = robobrowser.forms.fields.Input(''\<input name="__EVENTARGUMENT" value="" \/\>'')b_e_target = robobrowser.forms.fields.Input(''\<input name="__EVENTTARGET" value="PhoneListsControl$MasterDataControl$masterList$_ctl0$SelectButton" \/\>'')In [30]: form_find_b.add_field(b_e_target)In [31]: form_find_b.add_field(b_e_arg)
In [33]: m.submit_form(form_find_b)In [34]: m.urlOut[34]: u''http://example/PhoneLists.aspx''In [35]: m.parsed.findAll(''div'', id=''PhoneListsControl_phoneListMembersText'')Out[35]: [<divid="PhoneListsControl_phoneListMembersText"> Work </div>]In [36]: m.parsed.findAll(''input'', id=''PhoneListsControl_phoneListDetail__ctl2_number'')Out[36]: [<input id="PhoneListsControl_phoneListDetail__ctl2_number" maxlength="50" name="PhoneListsControl:phoneListDetail:_ctl2:number" onkeyup="enableApplyButton(''PhoneListsControl_'')" type="text" value="95551234567"/>]
Change your browser options, then try again什么意思" alt="
Change your browser options, then try again什么意思">
Change your browser options, then try again什么意思">
Change your browser options, then try again什么意思"noscript"><p>Sorry, JavaScript must be enabled.<br/>Change your browser options, then <a href="">try again</a>.</p></div>什么意思?Adobe acrobat javascript 获取 IP 地址
asp.net – 使用Python Mechanize进行屏幕分析aspx – Javascript表单提交
<input type="submit" name="ctl00$ContentPlaceHolder1$uxResults$uxNext" value="Next >" id="ctl00_ContentPlaceHolder1_uxResults_uxNext" title="Next >" />
<form method="post" action="QuickSearch.aspx?q=po30" onsubmit="javascript:return WebForm_OnSubmit();" onkeypress="javascript:return WebForm_FireDefaultButton(event,'ctl00_ContentPlaceHolder1_buttonSearch')" id="aspnetForm">
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" />
解决方法
url = 'http://ratings.food.gov.uk/QuickSearch.aspx?q=po30'
br = mechanize.browser()
br.set_handle_robots(False)
br.addheaders = [('User-agent','Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
br.open(url)
response = br.response().read()
br.select_form(nr=0) #Select the first (and only) form - it has no name so we reference by number
response = br.submit(name='ctl00$ContentPlaceHolder1$uxResults$uxNext').read() #"Press" the next submit button
ctl00$uxLanguageSwitch # Switch language to Welsh
ctl00$ContentPlaceHolder1$uxResults$Button1 # Search submit button
ctl00$ContentPlaceHolder1$uxResults$uxFirst # First result page
ctl00$ContentPlaceHolder1$uxResults$uxPrevIoUs # PrevIoUs result page
ctl00$ContentPlaceHolder1$uxResults$uxLast # Last result page
for form in br.forms():
print form
Bron-Kerbosch JavaScript 实现
如何解决Bron-Kerbosch JavaScript 实现?
let cliques = [];
let adjList = [
[2,3],[4,5],[0,3,4,2,[2,1,1]
];
function bronKerbosch(P,R,X) {
if (P.length === 0 && X.length === 0)
// if P and X are empty
cliques.push(R);
for (let i = 0; i < P.length; i++) {
let v = P[i];
let PnN = []; // P intersection with neighbours of v
let XnN = []; // X intersection with neighbours
for (let j = 0; j < adjList[v].length; j++) {
for (let k = 0; k < P.length; k++)
if (P[k] === adjList[v][j]) PnN.push(P[k]); // finding intersection of P and N(v)
for (let l = 0; l < X.length; L++)
if (X[l] === adjList[v][j]) XnN.push(X[l]); // finding intersection of X and N(v)
}
R.push(v);
bronKerbosch(PnN,XnN);
for (let i = 0; i < P.length; i++) if (P[i] === v) P.splice(i,1);
// P = P-v
X.push(v); // X = X reunion v
}
}
//
function maxClique() {
let P = [0,5]; // graph w 6 nodes
let X = [];
let R = [];
bronKerbosch(P,X);
}
解决方法
Change your browser options, then try again什么意思、Adobe acrobat javascript 获取 IP 地址、asp.net – 使用Python Mechanize进行屏幕分析aspx – Javascript表单提交、Bron-Kerbosch JavaScript 实现等相关内容,可以在本站寻找。