如何重新创建动态网址?

时间:2016-09-06 00:39:43

标签: javascript html web-scraping scrapy

前言:我对html /网络编程和抓取工作都很陌生。

为了好玩,我一直在玩Scrapy,并想尝试在线登录账户并刮掉梦幻足球比分。页面为http://www.espn.com/fantasy,页面来源及相关链接为:

<div class="panel panel-default">
  <div class="panel-heading">
    <div class="panel-title">
      <ul class="list-inline">
        <li class="col-xs-12">
          <div class="pull-right">
            <div class="row">
              <div class="col-md-6 col-xs-6">
                <p>Left side with col</p>
              </div>
              <div class="col-md-6 col-xs-6">
                <p> Right side with col</p>
              </div>
            </div>
          </div>
          <div class="pull-left">
            <div class="pull-left">Left side with pull</div>
             <div class="pull-right">Right side with pull</div>
           </div>

        </li>
      </ul> 
    </div>
   </div>
   <div class="panel-body">Content here..</div>
</div>

<hr>

点击这个调用一些Javascript(我认为)并生成一个看起来像这样的xhr请求(从查看firebug中的网络选项卡):

<a data-affiliatename="espn" data-language="en" data-regformid="espn_bbc" tref="/members/v3_1/login" data-behavior="overlay" data-route="false" href="#" class="med button-alt sign-in">Log In</a>

从firebug中的网络请求/响应中,我收集到这是调用api来启动登录覆盖,并且有许多参数,如conversation_id,correlation_id,timestamp等。

问题:

  1. 我相信我在cookie中找到了swid,但是如何生成会话和关联ID?
  2. 时间戳或任何其他参数是可选的吗?

1 个答案:

答案 0 :(得分:1)

对于#1:Scrapy自己管理cookie,除非cookie很复杂并且被javascript修改(这是非常不可能的)你不需要做任何事情。关于url参数是否是从你的cookie生成的也是不太可能的,这可能只是一个巧合,cookie和url参数都使用来自html源的一些<input>数据。

关于#2:除了通过更改/删除它进行试验之外,无法知道url参数是必需的还是可选的。

您应该能够使用FormRequest.from_response(response, formdata=<your custom value dict>)检索多数(如果不是全部)发布请求表单数据。 More about FormRequest on official docs