如何使用 Viewstate 参数抓取页面请求?

Van*_*del 4 .net python asp.net viewstate scrapy

我一直在尝试抓取这个网站:http://www.e3050.com/Cases-Fans-PDU/C

我可以正常抓取任何内容,但会转到下一页,调试后我发现他们为每个页面请求发送 __Viewstate 参数。viewstate 参数存储在每个页面响应中,因此我发现我需要每页获取它并将其发送到下一页。我使用此 xpath 获取 __viewstate :

sel.xpath('//input[@id="__VIEWSTATE"]/@value').extract()
Run Code Online (Sandbox Code Playgroud)

我还收到一个错误,因为他们发送的视图状态与页面响应中列出的视图状态不同,这两个参数都是 64 基编码,但他们每个请求发送的参数比我从页面响应中获得的数据更多。

我该如何处理这个问题?他们如何获取 viewstate 参数?

编辑: __EVENTVALIDATION 参数存在同样的问题。

Van*_*del 5

出于安全原因,__VIEWSTATE 是 .net 中使用的一个参数。它基本上是您请求的页面的推荐页面的哈希值。它通常嵌入在标签中,您只需在每个请求之前提取它并将其添加到下一个请求中。