从获取请求获取div数据
问题描述:
我有一个小问题,我做了一个Get请求使用axios到我的React应用程序到一个网站,我得到了html响应:responseData.data。 但是现在我想获取responseData.data中特定div的内容。 例如,这一个:从获取请求获取div数据
<!DOCTYPE html>
<html class="devise-layout-html">
<head prefix="og: http://ogp.me/ns#">
</head>
<body class="ui_charcoal login-page application navless" data-page="sessions:new">
<div class="tab-content">
<div class="active login-box tab-pane" id="ldapmain" role="tabpanel">
<div class="login-body">
<form id="new_ldap_user" class="gl-show-field-errors" action="https://*.com/users/auth/ldapmain/callback" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" />
<input type="hidden" name="authenticity_token" value="V8qeuk9QAYk51gorLAobEYGvCMMuyPpuUKXAwtBm2Zw1b1/7BVibiPhRWI7aVrQBa2p+CkKLGCEbQV/UIxZmkA==" /><div class="form-group">
<label for="username">LDAP Username</label>
<input type="text" name="username" id="username" class="form-control top" title="This field is required." autofocus="autofocus" required="required" />
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" name="password" id="password" class="form-control bottom" title="This field is required." required="required" />
</div>
<div class="remember-me checkbox">
<label for="remember_me">
<input type="checkbox" name="remember_me" id="remember_me" value="1" />
<span>Remember me</span>
</label>
</div>
<input type="submit" name="commit" value="Sign in" class="btn-save btn" />
</form>
</div>
</div>
</div>
</body>
</html>
,我想接取到这样的数据:<input type="hidden" name="authenticity_token" value="V8qeuk9QAYk51gorLAobEYGvCMMuyPpuUKXAwtBm2Zw1b1/7BVibiPhRWI7aVrQBa2p+CkKLGCEbQV/UIxZmkA==" />
(的值)。可能吗 ?谢谢
答
的
您也可以尝试将其解析为XML。例如使用该
xml parser
编辑:
在你的情况下,最快的方式来获得特定的标签属性的值是使用正则表达式表达:例如
/(<input type="hidden" name="authenticity_token")((.|\s|\v)*?)(\/>)/
将允许你提取从输入
const htmlDocumentString = '...<input type="hidden" name="authenticity_token" value="V8qeuk9QAYk51gorLAobEYGvCMMuyPpuUKXAwtBm2Zw1b1/7BVibiPhRWI7aVrQBa2p+CkKLGCEbQV/UIxZmkA==" />...'
const reg = /(<input type="hidden" name="authenticity_token")((.|\s|\v)*?)(\/>)/
// The second group of regex match should contain value="..."
const vAttr = reg.exec(htmlDocumentString)[2]
// Time to extract content of the value attribute.
// The fastest way by using substring and character indexes like so
const value = vAttr.substring(vAttr.indexOf('"') + 1, vAttr.lastIndexOf('"'))
console.log(value) // [string] "V8qeuk9QAYk51gorLAob..."
value
属性
答
是的,你可以把这个文件解析为一个字符串并且把你的价值,并且是有点难。但是,对于真正的只获取值并将其保存到React状态或Redux状态并将状态值添加到输入值!就这样!
P.S.最好问问做这个惊人API的人! :)
+0
我不明白你的回应:')sry –
我精确说getElementById在我的情况下不起作用 –
我真的不认为它是一个好主意,下载所有的html,如果你只想从html获得特定的信息。您应该解析服务器端的数据并仅返回所需的信息。 – mkatanski
我不能从服务器检索这个特定的信息..这是唯一的方法 –