我正在测试如何使用数据抓取脚本从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
为什么它适用于第二种情况?
答案 0 :(得分:1)
如果第二个工作,那是偶然的;这些链接发生的任何事情完全取决于网站。
链接应该在html页面文本中使用&
进行编码,但这只是为了允许&
实际出现在页面上。实际网址应仅包含文字&
。
有一个html标准的附录建议网址应该使用;
来分隔参数而不是&
,因为这个编码问题。这个建议几乎被普遍忽视了(除了CGI.pm,它让所有不得不忍受它的人感到烦恼)