Web搜索一个棘手的asp.net页面

时间:2012-09-26 05:56:25

标签: asp.net curl web-scraping mechanize

总体目标是在以下网页http://www.cma-cgm.com/eBusiness/Tracking/Default.aspx上搜索,其容器值为CMAU1173561。我尝试了两种方法,php扩展cURL和python的机械化。接近的php涉及使用页面上的输入字段执行POST提交(注意:这些在asp.net页面上非常难看)。返回的页面不包含任何搜索结果。第二种方法涉及使用python的机械化模块。在这种方法中,我加载页面,选择表单,然后将文本字段ctl00 $ ContentPlaceBody $ TextSearch更改为容器值。当我再次加载响应时没有搜索结果。

我真的走到了尽头。任何帮助都会受到赞赏,因为我的下一步是成为一个我不愿意的asp.net专家。

1 个答案:

答案 0 :(得分:0)

该页面的来源非常可怕(巨大的视图状态,遍布整个地方的表格,内联CSS,看起来像是从Word复制的样式)。

无论如何...... ASP.Net表单仍然将相同的原始数据传递给服务器,而不是任何其他形式(尽管它被抽象给开发人员)。

您很可能错过了与请求一起提供的Cookie。如果搜索页面(或站点的​​任何部分)使用会话状态,则ASP.Net会话cookie必须包含在请求中。你可以从它的名字告诉它(包含“asp.net”和“session”)。

我认为您在提交页面时使用了Firebug或Chrome等工具来查看完整的传出请求。从我的快速测试来看,看起来可能是使用GET而不是POST执行请求。我提交了一个表单,查看了请求,并将URL粘贴到一个新的浏览器窗口中。

示例:http://www.cma-cgm.com/eBusiness/Tracking/Default.aspx?ContNum=CMAU1173561&T=57201202648

这可能就是你需要做的一切。