cURL似乎在这里没有正确行为

时间:2008-12-14 01:34:35

标签: curl

我在shell上尝试以下命令:

curl -b usptoCookies -L -d "patentNum=6836866&applicationNum=10007391&maintFeeAction=Get+Bibliographic+Data&maintFeeYear=04" https://ramps.uspto.gov/eram/getMaintFeesInfo.do;jsessionid=0000Nmdd1Q_YsDF90HKmb9EIIgq:11g0uehq7

非常直截了当。它试图将一些变量发布到表单中。您可以在此处查看网页:https://ramps.uspto.gov/eram/

尝试输入专利号和申请号:6836866和10007391.然后点击获取书目数据按钮。

网页返回内容(“整齐”格式化的表格),但卷曲调用似乎遇到“某些”问题。我很茫然。我在浏览器上使用了firebug来确认上面的三个变量是完成表单发布所需的全部内容。

这不是https的问题,因为我确实得到了回复。我需要帮助。

任何?

Shaheeb Roshan

2 个答案:

答案 0 :(得分:2)

该形式还有许多其他隐藏字段,包括“签名”。每次请求页面时,这似乎都是一些独特的字符串。这可能是一个用于确保您不会从数据库中删除所有信息的功能。

当我清空隐藏的签名字段时,它返回了一个错误。如果你想编写一个程序来获取这些信息,你可能需要做一些更复杂的事情,并首先在其上获取带有“签名”的页面,这样你就可以将该值发回给网站以获得一个适当的回应。

答案 1 :(得分:0)

我认为可能就是这种情况,所以在我的一个擦除上,我把它输出到我可以在浏览器中打开的页面。这允许我操纵表单元素并重新提交以查看删除某些隐藏字段是否会影响帖子。当我打开页面并删除所有隐藏字段(包括sessionId,签名和加载时间)时,我仍然可以提交表单以获得有效的响应。

认为这可能指向一些cookie或会话相关的问题,我启动了Selenium(通过Testing_Selenium包)并尝试了相同的刮擦。我们的想法是,由于Selenium实际上使用的是真正的浏览器,因此应该消除任何会话/ cookie问题。

当Selenium以与curl run相同的方式运行失败时,我就在我的智慧结束时。

我希望有人可以看到这个可能解释失败的页面奇怪或不寻常。

感谢您的意见,您的想法如何?

Shaheeb R。