【发布时间】:2017-08-21 03:11:24
【问题描述】:
所以我试图用我在 python 中的代码登录 Spotify,但问题是我找不到我应该将请求发布到的 url,因为表单中没有 action 属性。 login url
这是表单代码:
<form _lpchecked="1" class="ng-valid-sp-disallow-chars ng-dirty ng-valid-parse ng-valid ng-valid-required" name="$parent.accounts" ng-submit="submit(form)" novalidate="">
<!-- ngIf: status && status !== 200 -->
<div class="row" ng-class="{'has-error': (accounts.username.$dirty && accounts.username.$invalid)}">
<div class="col-xs-12">
<label class="control-label sr-only ng-binding" for="login-username">
Username or email address
</label>
<input autocapitalize="off" autocomplete="off" autocorrect="off" autofocus="autofocus" class="form-control input-with-feedback ng-pristine ng-untouched ng-valid ng-valid-sp-disallow-chars ng-not-empty ng-valid-required" id="login-username" name="username" ng-model="form.username" ng-trim="false" placeholder="Username or email address" required="" sp-disallow-chars=":%&'`´"" sp-disallow-chars-model="usernameDisallowedChars" style='background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAAXNSR0IArs4c6QAAAUBJREFUOBGVVE2ORUAQLvIS4gwzEysHkHgnkMiEc4zEJXCMNwtWTmDh3UGcYoaFhZUFCzFVnu4wIaiE+vvq6+6qTgthGH6O4/jA7x1OiCAIPwj7CoLgSXDxSjEVzAt9k01CBKdWfsFf/2WNuEwc2YqigKZpK9glAlVVwTTNbQJZlnlCkiTAZnF/mePB2biRdhwHdF2HJEmgaRrwPA+qqoI4jle5/8XkXzrCFoHg+/5ICdpm13UTho7Q9/0WnsfwiL/ouHwHrJgQR8WEwVG+oXpMPaDAkdzvd7AsC8qyhCiKJjiRnCKwbRsMw9hcQ5zv9maSBeu6hjRNYRgGFuKaCNwjkjzPoSiK1d1gDDecQobOBwswzabD/D3Np7AHOIrvNpHmPI+Kc2RZBm3bcp8wuwSIot7QQ0PznoR6wYSK0Xb/AGVLcWwc7Ng3AAAAAElFTkSuQmCC"); background-repeat: no-repeat; background-attachment: scroll; background-size: 16px 18px; background-position: 98% 50%; cursor: auto;' type="text"/>
<!-- ngIf: accounts.username.$dirty && accounts.username.$invalid -->
</div>
</div>
<div class="row" ng-class="{'has-error': (accounts.password.$dirty && accounts.password.$invalid)}">
<div class="col-xs-12">
<label class="control-label sr-only ng-binding" for="login-password">
Password
</label>
<input autocomplete="off" class="form-control input-with-feedback ng-not-empty ng-dirty ng-valid-parse ng-valid ng-valid-required ng-touched" id="login-password" name="password" ng-model="form.password" ng-trim="false" placeholder="Password" required="" style='background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAAXNSR0IArs4c6QAAAUBJREFUOBGVVE2ORUAQLvIS4gwzEysHkHgnkMiEc4zEJXCMNwtWTmDh3UGcYoaFhZUFCzFVnu4wIaiE+vvq6+6qTgthGH6O4/jA7x1OiCAIPwj7CoLgSXDxSjEVzAt9k01CBKdWfsFf/2WNuEwc2YqigKZpK9glAlVVwTTNbQJZlnlCkiTAZnF/mePB2biRdhwHdF2HJEmgaRrwPA+qqoI4jle5/8XkXzrCFoHg+/5ICdpm13UTho7Q9/0WnsfwiL/ouHwHrJgQR8WEwVG+oXpMPaDAkdzvd7AsC8qyhCiKJjiRnCKwbRsMw9hcQ5zv9maSBeu6hjRNYRgGFuKaCNwjkjzPoSiK1d1gDDecQobOBwswzabD/D3Np7AHOIrvNpHmPI+Kc2RZBm3bcp8wuwSIot7QQ0PznoR6wYSK0Xb/AGVLcWwc7Ng3AAAAAElFTkSuQmCC"); background-repeat: no-repeat; background-attachment: scroll; background-size: 16px 18px; background-position: 98% 50%; cursor: auto;' type="password"/>
<!-- ngIf: accounts.password.$dirty && accounts.password.$invalid -->
</div>
</div>
<div class="row row-submit">
<div class="col-xs-12 col-sm-6">
<div class="checkbox">
<label class="ng-binding">
<input class="ng-pristine ng-untouched ng-valid ng-not-empty" id="login-remember" name="remember" ng-model="form.remember" type="checkbox"/>
Remember me
<span class="control-indicator">
</span>
</label>
</div>
</div>
<div class="col-xs-12 col-sm-6">
<button class="btn btn-sm btn-block btn-green ng-binding">
Log In
</button>
</div>
</div>
</form>
【问题讨论】:
-
如果表单没有 action 属性,则默认为当前 URL。
-
除非有一些神奇的 javascript 正在接管表单,并且看起来像 Angular-y,否则可能存在。检查您的开发工具中的网络选项卡,看看它的位置。
-
另请注意,您可能希望使用 API:developer.spotify.com/web-api
标签: php python html web-scraping http-post