前言:我是与html / web编程和抓取有关的新手。

为了娱乐,我一直在玩Scrapy,并想尝试在线登录一个帐户并抓取幻想足球的得分。该页面为http://www.espn.com/fantasy,具有相关链接的页面来源为:

<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>


单击它会调用一些Javascript(我认为)并生成一个如下所示的xhr请求(通过查看firebug中的网络标签):

http://log.go.com/log?action_name=api%3Alaunch%3Alogin&anon=true&appid=DTSS-DISNEYID-UI&client_id=ESPN-FANTASYLM-PROD&conversation_id=de122753-f2d4-4988-a928-a0508dc1369e&correlation_id=dedc6867-eb52-4a5f-a8b7-ea6b44a723a3&os=Ubuntu%20undefined&process_time=11454&sdk_version=Web%202.19.9&success=true&swid=c1b300b5-ec07-4d08-8813-c4f501e9d593&timestamp=2016-09-06T00%3A27%3A23.671Z


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

问题:


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

最佳答案

对于#1:Scrapy自行管理cookie,除非cookie复杂且被javascript修改(这是不太可能的),否则您无需执行任何操作。关于是否从cookie生成url参数的可能性也很小,这可能只是一个巧合,cookie和url参数都使用了html源中的某些<input>数据。

关于#2:除了尝试更改/删除url参数外,没有其他方法可以知道url参数是必需的还是可选的。

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

关于javascript - 如何重新创建动态网址?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39339144/

10-16 22:03