使用cfhttp从bitly url检索页面内容时出错

时间:2015-10-19 21:07:54

标签: coldfusion cfhttp lucee

我使用cfhttp(Lucee Server)以下列方式从网址中抓取网页内容:

<cfhttp url="#libs.originalAdPage#" method="GET" />

然后我将此内容放在我页面上的div中。

此代码已经工作了很长时间。

我需要报告因其内容而被删除的网址,并且该信息会被放入另一个不受我控制的网站表单中。我决定将网址转换为缩短的网址。我将进程构建到页面中以创建一个有点链接并返回该url来替换现有的url。

如果我使用来自linkedin的缩短网址的页面,页面将被删除并在div中正确显示。

<cfhttp url="http://bit.ly/1NPhPgc" method="GET" />

但是,如果我对一个与网址短缺的Indeed.com页面进行相同的cfhttp调用,则会出现连接失败错误。

<cfhttp url="http://bit.ly/1RQvlim" method="GET" />[![cfdump of connection failure][1]][1]

如果我直接在浏览器中打开此URL,页面会正确显示。

非常感谢任何想法。

谢谢,

迈克尔

1 个答案:

答案 0 :(得分:2)

我无法访问Lucee服务器进行测试,但是ColdFusion服务器上的cfhttp对我来说都适用于这两个有点URL。 cfhttp跟在重定向之后,FileContent包含了预期的Indeed.com页面。

如果您阻止cfhttp自动跟踪重定向,以便您可以手动调试并遵循重定向,您是否验证了Bitly Indeed URL会发生什么?即

<cftry>
    <cfhttp url="http://bit.ly/1RQvlim" method="GET" redirect="no" />
    <cfdump var="#cfhttp.responseHeader#" />
    <cfhttp url="#cfhttp.responseHeader.Location#" method="GET" />
    <cfdump var="#cfhttp#" label="cfhttp2" />
<cfcatch>
    <cfdump var="#cfcatch#" label="cfcatch" />
</cfcatch>
</cftry>

Indeed.com确实关注抓取工具和用户代理 - 只需查看他们的robots.txt以获取相关证据。

您是否可以访问其他服务器进行测试,以防Lucee的cfhttp实现或您的IP地址特定(例如,由于所有抓取而被列入黑名单)?

您是否尝试按照How to emulate a real http request via cfhttp?

调整cfhttp useragent和/或任何其他标头