我想使用PHP CURL解析在ASP上构建的一个站点的搜索结果。没有DOM问题,但POST变量有问题。我不知道如何在我的PHP脚本中生成它。
ASP使用__前缀生成6个变量。
__EVENTTARGET
__EVENTARGUMENT (has Value like base 64 encoded)
__LASTFOCUS
__VIEWSTATE (has Value)
__VIEWSTATEENCRYPTED
__EVENTVALIDATION (has Value like base 64 encoded)
我试图在httpfox的帮助下从我的浏览器复制POST数据,并且这个数据脚本工作半小时:
...
define('POSTVARS', '__EVENTTARGET=&__EVENTARGUMENT=&__LASTFOCUS=&__VIEWSTATE=1wI2MmTCR4DM7poU...
...
url_setopt($ch, CURLOPT_POSTFIELDS ,POSTVARS);
...
如何生成__EVENTARGUMENT,__ CopyrightSTATE和__EVENTVALIDATION?
PS。解析网站为http://nakolesah.ru/。我解析表格的结果。表单提交按钮的ID是“ctl00_contentPlaceHolder_btnSearchWheels”。结果页面为:http://nakolesah.ru/wheels/podbor/porazmeru.aspx。
答案 0 :(得分:3)
您无法生成这些值。它们由ASP.NET生成,使用服务器机器密钥加密并具有一定的有效性。实现此功能的唯一方法是首先向主页发送GET请求,抓取HTML,获取这些隐藏字段的值,然后使用您已阅读的值发送POST请求。