我使用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,页面会正确显示。
非常感谢任何想法。
谢谢,
迈克尔
答案 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地址特定(例如,由于所有抓取而被列入黑名单)?
调整cfhttp useragent和/或任何其他标头