URL中编码的&符号的间歇行为

时间:2012-12-06 17:30:19

标签: uri encode

我正在测试如何使用数据抓取脚本从Best Buy的页面抓取页面,我生成了这样的链接:

http://www.bestbuy.com/site/searchpage.jsp?_dyncharset=ISO-8859-1&_dynSessConf=1803033044744184095&id=pcat17071&type=page&st=DOTD_2012126b&sc=Global&cp=1&nrp=15&sp=&qp=&list=n&iht=y&usc=All+Categories&ks=960&p=[promotion%2C+synonymns]&pu=defaultusr&pt=1354255201

以上链接无效,我收到了sorry, page not accessible error

然而,用“&”替换那些&符号后,&手动,它工作。

另一个链接,也包括编码&,有效。

http://www.bestbuy.com/site/PNY+-+32GB+Secure+Digital+High+Capacity+(SDHC)+Class+10+Memory+Card/2300602.p?id=1218318851702&skuId=2300602&st=2300602&cp=1&lp=1

为什么它适用于第二种情况?

1 个答案:

答案 0 :(得分:1)

如果第二个工作,那是偶然的;这些链接发生的任何事情完全取决于网站。

链接应该在html页面文本中使用&进行编码,但这只是为了允许&实际出现在页面上。实际网址应仅包含文字&

有一个html标准的附录建议网址应该使用;来分隔参数而不是&,因为这个编码问题。这个建议几乎被普遍忽视了(除了CGI.pm,它让所有不得不忍受它的人感到烦恼)