【发布时间】:2010-11-29 09:24:35
【问题描述】:
有一个提供搜索服务的网站。你输入一个数字,搜索,它会返回结果。我想做的是通过coldfusion以编程方式运行该搜索,而不必去网站手动搜索。
这是我想阅读/抓取的网页中的表单的样子(查看页面源时看到的):
<form id="frmNumID" name="frmNum" action="" method="post">
<TABLE border=0 cellPadding=0 cellSpacing=0>
<TR>
<TD align="center">
<label class="NumLabel" for="Num" ACCESSKEY="1">ENTER NUM:</label>
<input class="NumInput" id="Num" name="inputNum" onfocusin="select()" title="Num Input" tabindex="1" type="text" value="" size ="29" maxlength="17" >
</TD>
<TD align="center">
<input class="NumInput" title="Submit Num" tabindex="2" type="image" src="/include/pics/SubmitBtn.jpg" value="submit" ACCESSKEY="2">
</TD>
</TR>
</TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0>
<TR>
<TD colspan="2" align="center">
<input type="radio" name="displayType" value="NONE" Checked />No Pictures
<input type="radio" name="displayType" value="STUFF" /> Other Stuff
<input type="radio" name="displayType" value="MORESTUFF" /> More Other Stuff
</TD>
</TR>
</TABLE>
<div id="NUMMsg"></div>
</form>
我真正关心的唯一字段是 Num 输入字段。我想向该字段发布一个值,运行搜索,并在我的冷融合代码中获取结果。这是我目前所拥有的:
<cfhttp url="http://www.someurl.com/"
method="POST">
<cfhttpparam name="Num" type="FormField" value="123456789123456" />
</cfhttp>
<cfdump var="#cfhttp.filecontent#" />
但是当我转到页面时,转储只会显示“Connection Failure”。我做错了什么?
【问题讨论】:
-
抛开技术问题不谈,我会警惕抓取网站。结构的变化可能会破坏你的刮刀。该网站的使用条款可能会禁止这样做,特别是如果您这样做的目的不仅仅是个人使用。最后,如果你在没有节流的情况下敲击站点,可能会导致意外的高负载。
标签: post coldfusion scrape cfhttp