【问题标题】:How can I get URL of next page of a .asp page?如何获取 .asp 页面的下一页的 URL?
【发布时间】:2018-04-20 19:58:44
【问题描述】:

我正在尝试在此链接上抓取数据:https://thereserve2.apx.com/myModule/rpt/myrpt.asp?r=112

我可以进入第一页,但是当我进入下一页时(使用页面底部的“下一步”按钮),下一页的 URL 是通用的:https://thereserve2.apx.com/myModule/rpt/myrpt.asp

如何获得更具体的 URL 以用于我的自动抓取工作?

谢谢。

【问题讨论】:

  • “下一步”按钮不是这里的链接,它是一个带有回发操作的控件。大多数 asp.net 网站使用 ViewState 来跟踪页面和控件值。您必须将 ViewState 回发到服务器。使用开发工具检查网络并查看此事件的参数。如果你使用 Scrapy,这可能很有用:blog.scrapinghub.com/2016/04/20/….

标签: javascript asp.net url web-scraping


【解决方案1】:

检查下面提交asp页面的HTML和JS代码并转到所需的页面,“下一步”按钮提交表单,如下面的JS,X999whichpage是下一页,你需要做同样的提交带有所需页码的表格。

function submitform2(X999sort, X999field, X999paging, X999whichpage, X999csv, X999action, X999actionfield) {
  document.xxxx2.X999csv.value = X999csv;
  document.xxxx2.X999action.value = X999action;
  document.xxxx2.X999actionfield.value = X999actionfield;
  document.xxxx2.X999sort.value = X999sort;
  document.xxxx2.X999field.value = X999field;
  document.xxxx2.X999paging.value = X999paging;
  document.xxxx2.X999whichpage.value = X999whichpage;
  document.xxxx2.submit();
}
<form id="xxxx2" name="xxxx2" action="https://thereserve2.apx.com/myModule/rpt/myrpt.asp?r=112" method="POST">
  <input type="hidden" name="X999myquery" value="">
  <input type="hidden" name="X999tablenumber" value="2">
  <input type="hidden" name="X999csv" value="">
  <input type="hidden" name="X999sort" value="">
  <input type="hidden" name="X999action" value="">
  <input type="hidden" name="X999actionfield" value="">
  <input type="hidden" name="X999field" value="On">
  <input type="hidden" name="X999paging" value="">
  <input type="hidden" name="X999whichpage" value="3">
</form>

Enter Page Number:<input type="text" id="whichpage" value="2"> 
<button onclick="javascript:submitform2('','','On',document.getElementById('whichpage').value,'','','')">Move to Page</button>

没有JS的另一种解决方案

<form id="xxxx2" name="xxxx2" action="https://thereserve2.apx.com/myModule/rpt/myrpt.asp?r=112" method="POST">
<input type = "hidden" name = "X999tablenumber" value = "2" />
<input type = "hidden" name = "X999csv" value = "" />
<input type = "hidden" name = "X999sort" value = "" />
<input type = "hidden" name = "X999action" value = "" />
<input type = "hidden" name = "X999actionfield" value = "" />
<input type = "hidden" name = "X999field" value = "" />
<input type = "hidden" name = "X999paging" value = "On" />
<input type = "text" name = "X999whichpage" value = "3" />

<input type="submit" value="Go To Page" />
</form>

【讨论】:

    猜你喜欢
    • 2020-03-07
    • 2019-05-25
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多