Web crawler 写一个网络爬虫——当谷歌看到#的时候,我如何模仿它呢!在URL中?
我正在写一个网络爬虫,想做谷歌遇到Web crawler 写一个网络爬虫——当谷歌看到#的时候,我如何模仿它呢!在URL中?,web-crawler,google-search,hashbang,Web Crawler,Google Search,Hashbang,我正在写一个网络爬虫,想做谷歌遇到#时做的事情它检索到的页面中的URL。如果URL没有#!谷歌将其添加到最终将获取和索引的页面列表中,但当它看到#时,它会做一些特别的事情!如中所述 当Google看到一个包含#的URL时它修改URL,对修改后的URL执行HTTP GET,然后对检索到的页面进行索引,就好像它检索到了具有#的URL一样(而不是它实际检索到的URL)。我试图模仿它所做的转换,但这并没有完全描述 引用的页面部分描述了谷歌如何修改URL,并告诉网站作者如何反向转换,以便他们知道原始URL
#时做的事情代码>它检索到的页面中的URL。如果URL没有#!谷歌将其添加到最终将获取和索引的页面列表中,但当它看到#时,它会做一些特别的事情!如中所述
当Google看到一个包含#的URL时代码>它修改URL,对修改后的URL执行HTTP GET,然后对检索到的页面进行索引,就好像它检索到了具有#的URL一样代码>(而不是它实际检索到的URL)。我试图模仿它所做的转换,但这并没有完全描述
引用的页面部分描述了谷歌如何修改URL,并告诉网站作者如何反向转换,以便他们知道原始URL是什么,并返回他们希望在#下索引的数据代码>URL。page说的一件事是:注意:爬虫在转换过程中会转义片段中的某些字符。要检索原始片段,请确保取消片段中所有%XX个字符的扫描。更具体地说,%26应该变成&、%20应该变成空格、%23应该变成#、%25应该变成%,依此类推。
提到的“转换”是为了取代#使用?\u转义\u片段=
并转义后面文本中的一些特殊字符代码>。该文本告诉网站作者通过(部分地)删除文本中的%XX来反转转换,该文本在修改后的URL中紧跟着?\u转义的\u片段=
。问题是,我如何知道要转义哪些特殊字符,以便我的爬虫程序可以请求与Google请求相同的替换URL
在引用的段落中,谷歌列出了一些它将转义的字符,但结尾的“等等”表明转义字符的完整列表更长,但没有完全描述
理论上,每个字符(甚至字母)都可以转义为%XX,但每个网站正确处理该字符的几率并不高。我如何计算Google将转义哪些字符,以便我的爬虫程序将请求与Google相同的URL
(如果我控制了一个记录传入URL的网站,并且我可以让Google抓取,我可以制作一个页面,其中有很多URL在#!)之后带有特殊字符,并通过查看带有的URL来查看逃逸的内容?_逃逸的u片段
——但我真的必须设置一个其他虚假的网站才能得到答案吗?)我完全忽略了一个事实,即本文档中包含了转义字符的详细信息:
我将这个问题留在这里,以防其他人需要找到该规范