google url

来源:互联网 发布:当口译员有多难 知乎 编辑:程序博客网 时间:2024/05/23 22:32

REFER : <<google hacking技术手册>>

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.4  使用Google URL

高级Google用户正是从Google的Web界面搜索域开始测试高级查询技巧的。他们不断地推敲查询关键字直到得到正确的结果为止。每个Google查询都可以用一个URL来指向搜索结果页面。Google的搜索结果页面不是静态的。它们会在你点击Search(搜索)按钮或者打开一个链接到结果页面的URL时动态创建的。通过Web界面提交的查询能够打开可以用简单的URL来表示的结果页面。例如,考虑查询ihackstuff。当你输入这个查询之后,Google立即转向类似于下面的URL:

www.google.com/search?q=ihackstuff

如果你收藏了这个URL并在以后打开它,或者在你的浏览器地址栏中输入这个URL时,Google会处理你对ihackstuff的搜索并返回相应的结果。此时,这个URL不仅是一个连接到结果列表的链接,而且还是Google查询的一种简洁、美观的表达形式。任何经验丰富的Google搜索用户都能看懂这个URL并知道查询的主题。这个URL也可以相当容易地进行修改。通过把ihackstuff改成iwritestuff,Google查询就会变为查找关键字iwritestuff。这个简单的例子阐明了Google URL在高级搜索中的用处。URL的快速改变能够让变化来得更快!

Google搜索背景知识

简化URL的结构

大多数情况所需要的唯一的URL参数是一个查询(q参数)。这样就可以构造出最简单的Google URL:www.google.com/search?q=google。

1.4.1  URL语法
为了完全理解URL的强大,我们需要掌握其语法。URL的第一部分——www.google.com/search——是Google的搜索脚本。我把这个URL以及它后面的问号称作基本部分(base)或者叫起始URL。如果浏览这个URL,你将看到一个美观的、空白页面。search后面的问号表示参数即将传递给搜索脚本。参数是指命令搜索脚本实际所做的事情。参数之间用“&”符号进行分隔,每个参数由一个变量名、等于号(=)和该变量的值所组成。基本语法如下所示:

www.google.com/search?variable1=value&variable2=value

这个URL包含了非常简单的字符。更为复杂的URL将包含某些必须由等价的十六进制代码表示的特定字符。现在我们先来说是一下十六进制代码。

1.4.2  特殊字符
十六进制是一种低级进制。人们终究会需要在查询URL中包含一个特殊字符。当遇到需要包含特殊字符的情况时,最好是让浏览器来帮助解决此问题。大多数新型浏览器都可以自动校正输入的URL,使用等价的十六进制代码来替换特殊字符和空格。如果你的浏览器支持这个功能,那么URL构造的工作就变成非常容易了。让我们一起来做一个简单的测试。在你的浏览器的地址栏中输入如下的URL,务必在i,hack和stuff之间使用空格:

http://www.google.com/search?q= hack stuff"

如果你的浏览器支持这种自动校正的功能,那么当你在地址栏中敲完回车键之后,这个URL应当会校正为www.google.com/search?q="i%20hack%20stuff",或者校正为与其类似的URL。注意到空格字符被替换成为%20。百分号意味着接下来的两个数字表示空格字符的十六进制值,即20。有些浏览器则会做进一步转换,即把双引号改为%22。

如果你的浏览器拒绝转换这些空格,查询将无法进行。有可能你的浏览器中有一个用来修改该操作的设置,你不妨尝试着修改一下,并使用新型的浏览器。Internet Explorer、Firefox、Safari和Opera都是不错的选择。

Google搜索背景知识

快速进行十六进制转换

你可以在UNIX或者Linux机器中运行man ASCII,或者在Google中搜索"ascii table"来快速地查看字符的十六进制编码。

1.4.3  组合各个部分
Google搜索URL的构造就像是拼接玩具一样。你可以从一个URL开始,然后按照你的需要来修改它以得到各种搜索结果。大多数情况下,紧接着URL基本部分的是通过Google Web界面所提交的查询。如果需要其他参数,你可以直接以任意的顺序把它们添加到URL中。如果你需要修改搜索中的参数,只需要修改参数的值并且重新提交查询即可。如果你需要删除一个参数,只需要在URL中把整个参数删除掉,然后重新提交查询。这个过程非常简单,你只需要在浏览器的地址栏中直接修改URL。所要做的只是简单地对URL进行修改,然后敲回车键。浏览器会自动地提取地址并转向一个更新后的搜索页面。你也可以通过浏览Google高级搜索页面(www.google.com/advanced_search,如图1.16所示),设置各种前面讨论过的参数来实现类似的结果,但是最后你将发现通过URL修改来完成快速的搜索调整更为迅速、简捷。

图1.16 使用Google高级搜索页面

一个Google查询URL可以包含许多不同的参数。根据你选择的选项以及你提供的搜索关键字,你会看到如表1.2中所列的部分或者全部的变量。可以根据需要对这些参数进行添加或者修改。

表1.2   Google的查询参数

变量
 值
 说明
 
q或者as_q
 搜索查询
 搜索查询
 
as_eq
 搜索关键字
 将从搜索中排除的关键字
 
start
 0到最大结果数
 用于显示结果页面。结果0是第一页结果页面的第一个结果
 
num maxResults
 1到100
 每页所显示的结果数

(最大为100)
 
filter
 0或1
 如果filter为0,则显示可能重复的结果
 
restrict
 限定代码
 限定位于某个特定的国家的结果
 
hl
 语言代码
 这个参数描述了Google用来显示结果所用的语言。可以设为你的母语。查找到的页面未经过翻译
 
lr
 语言代码
 语言限定。仅显示该种语言的页面
 
ie
 UTF-8
 Web搜索的输入编码。Google建议使用UTF-8
 
oe
 UTF-8
 Web搜索的输出编码。Google建议使用UTF-8
 
as_epq
 搜索词组
 这个值作为一个确切的词组进行提交。这样便不需要给词组加上引号
 
as_ft
 i = 包含的文件类型

e = 排除的文件类型
 用于包含或排除以as_filetype表示的文件类型
 
as_filetype
 文件扩展名
 包含或者排除由as_ft的值所指定的文件类型
 
as_qdr
 all-所有的结果

m3 = 过去3个月

m6 = 过去6个月

y = 过去一年
 查找在指定时间范围内更新的网页
 
as_nlo
 最小数
 查找as_nlo和as_nhi之间的数
 
as_nhi
 最大数
 查找as_nlo和as_nhi之间的数
 
as_oq
 词的列表
 查找这些词中间的至少一个
 
as_occt
 any = 网页内的任何地方

title = 页面标题

body = 页面文本

url = 网页内的网址

links = 在网页的链接内
 在指定位置查找搜索关键字
 
as_dt
 i = 仅包含站点或者域

e = 不包含站点或者域
 包含或者排除由as_sitesearch指定的域
 
as_sitesearch
 域或站点
 包含或者排除由as_dt指定的域或站点
 
safe
 active = 启用安全搜索

off = 禁用安全搜索
 使用或不使用安全搜索
 
as_rq
 URL
 查找与该URL类似的页面
 
as_lq
 URL
 查找链接到该URL的页面
 
rights
 cc_*
 用特殊的使用权限(政府、商业、非商业,等等)定位页面
 

一些参数的值为语言限定(lr)代码。lr的值命令Google只返回指定语言的页面。例如lr=lang_ar只返回以阿拉伯语所书写的页面。表1.3列出了lr的所有可能值:

表.13 语言限定代码

lr 语言代码
 语言
 
lang_ar
 阿拉伯语
 
lang_hy
 亚美尼亚语
 
lang_bg
 保加利亚语
 
lang_ca
 加泰罗尼亚语
 
lang_zh-CN
 中文(简体)
 
lang_zh-TW
 中文(繁体)
 
lang_hr
 克罗埃西亚语
 
lang_cs
 捷克语
 
lang_da
 丹麦语
 
lang_nl
 荷兰语
 
lang_en
 英语
 
lang_eo
 世界语
 
lang_et
 爱沙尼亚语
 
lang_fi
 芬兰语
 
lang_fr
 法语
 
lang_de
 德语
 
lang_el
 希腊语
 
lang_iw
 希伯来语
 
lang_hu
 匈牙利语
 
lang_is
 冰岛语
 
lang_id
 印度尼西亚语
 
lang_it
 意大利语
 
lang_ja
 日语
 
lang_ko
 韩语
 
lang_lv
 拉脱维亚语
 
lang_lt
 立陶宛语
 
lang_no
 挪威语
 
lang_fa
 波斯
 
lang_pl
 波兰语
 
lang_pt
 葡萄牙语
 
lang_ro
 罗马尼亚语
 
lang_ru
 俄语
 
lang_sr
 塞俄维亚语
 
lang_sk
 斯洛伐克语
 
lang_sl
 斯洛文尼亚语
 
lang_es
 西班牙语
 
lang_sv
 瑞典语
 
lang_th
 泰国语
 
lang_tr
 土耳其语
 
lang_uk
 乌克兰语
 
lang_vi
 越南语
 

变量hl可改变Google的消息和链接的语言。它既和限定结果页面语言的变量lr不同,也和把页面由一种语言翻译成另外一种语言的翻译服务不同。

图1.17显示出把变量hl的值设为DA(Danish,丹麦语)之后,搜索单词food的结果页面。注意到Google的消息和链接都是丹麦语,而搜索的结果却用英语显示。因为我们并没有要求Google限定或者修改查询。

图1.17 使用变量hl

为了更好地理解变量hl和lr之间的不同,可以尝试把查询food重新提交为一个lr搜索,如图1.18所示。注意URL的不同:此时的结果比之前少了许多,结果是以丹麦语所写,Google增加了一个“丹麦语网页”(Search Danish)的按钮,且Google的消息和链接语言为英语。不同于选项hl(表1.4列出了hl域的值),选项lr可以改变我们的搜索结果。我们要求Google只返回用丹麦语书写的页面。

表1.4 hl语言域的值

lr语言代码
 语言
 
af
 布尔语(南非荷兰语)
 
sq
 阿尔巴尼亚语
 
am
 阿姆哈拉语
 
ar
 阿拉伯语
 
hy
 亚美尼亚语
 
az
 阿塞拜疆语
 
eu
 巴斯克语
 
be
 白俄罗斯语
 
bn
 孟加拉语
 
bh
 比哈里语
 
xx-bork
 七嘴八舌(Bork, bork, bork!)
 
bs
 波斯尼亚语
 
br
 布列塔尼语
 
bg
 保加利亚语
 
km
 柬埔寨语
 
ca
 加泰罗尼亚语
 
zh-CN
 中文(简体)
 
zh-TW
 中文(繁体)
 
co
 科西嘉语
 
hr
 克罗埃西亚语
 
cs
 捷克语
 
da
 丹麦语
 
nl
 荷兰语
 
xx-elmer
 Elmer Fudd语(动画里的用语)
 
en selected
 英语
 
eo
 世界语
 
et
 爱沙尼亚语
 
fo
 法罗语
 
tl
 菲律宾语
 
fi
 芬兰语
 
fr
 法语
 
fy
 弗里斯兰语
 
gl
 加利西亚语
 
ka
 格鲁吉亚语
 
de
 德语
 
el
 希腊语
 
gn
 瓜拉尼语
 
gu
 古吉拉特语
 
xx-hacker
 黑客语
 
iw
 希伯来语
 
hi
 北印度语
 
hu
 匈牙利语
 
is
 冰岛语
 
id
 印度尼西亚语
 
ia
 拉丁国际语
 
ga
 爱尔兰语
 
it
 意大利语
 
ja
 日语
 
jw
 爪哇语
 
kn
 卡纳达语
 
kk
 哈萨克语
 
xx-klingon
 格林岗语
 
ko
 韩语
 
ku
 库尔德语
 
ky
 吉尔吉斯斯坦语
 
lo
 老挝语
 
la
 拉丁语
 
lv
 拉脱维亚语
 
ln
 林加拉语
 
lt
 立陶宛语
 
mk
 斯拉夫语
 
ms
 马来语
 
ml
 马拉雅拉姆语
 
mt
 马耳他语
 
mr
 马拉地语
 
mo
 摩尔达维亚语
 
mn
 蒙古语
 
ne
 尼泊尔语
 
no
 挪威语
 
nn
 挪威语(尼诺斯克语)
 
oc
 奥克斯坦语
 
or
 奥里雅语
 
ps
 普什图语
 
fa
 波斯语
 
xx-piglatin
 儿童黑话(Pig Latin密语)
 
pl
 波兰语
 
pt-BR
 葡萄牙语(巴西)
 
pt-PT
 葡萄牙语(葡萄牙)
 
pa
 旁遮普语
 
ro
 罗马尼亚语
 
rm
 罗曼什语(Romansh)
 
ru
 俄语
 
gd
 苏格兰盖尔语
 
sr
 塞俄维亚语
 
sh
 塞尔维亚克罗地亚语
 
st
 塞索托语
 
sn
 修纳语
 
sd
 信德语
 
si
 僧伽罗语
 
sk
 斯洛伐克语
 
sl
 斯洛文尼亚语
 
so
 索马里语
 
es
 西班牙语
 
su
 巽他语
 
sw
 斯瓦希里语
 

Google搜索背景知识

顽固的问题

hl的值是相当顽固的!这意思是说如果你在URL中更改了这个值,那么在以后的搜索中,它都一直是这个值而保持不变。把它改回去的最好的办法是通过Google使用偏好或者直接在URL中改变hl的代码。

变量restrict很容易和变量lr混淆,因为它限定你搜索特定的语言。但是,restrict和语言没有什么关系。这个变量能够把搜索结果限定在一个或几个国家,而国家的判断则是通过顶级域名(例如.us)和(或)通过服务器IP地址的地理位置。也许你会察觉到这种判断国家的方法有些不准确,是的,确实如此。尽管不准确,但是这个变量却相当有效。这次,让我们把搜索限定在JP(日语)中来搜索people,如图1.19所示。URL改变为包含限定值的值(参见表1.5),但是要注意的是,第二个结果来自www.unu.edu/,该URL的位置无从得知。正如工具栏中显示的,实际上,主机看起来像是位于日本。

图1.19 使用restrict来让结果更为精确

Google搜索背景知识

Google是如何判断地理位置的

很容易判断主机所处的地理位置。以下将使用host和whois来判定www.unu.edu所处的地理位置:

wh00p:~# host www.unu.edu

www.unu.edu has address 202.253.138.42

wh00p:~# whois 202.253.138.42

role: Japan Network Information Center

address: Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda

address: Chiyoda-ku, Tokyo 101-0047, Japan

country: JP

phone: +81-3-5297-2311

fax-no: +81-3-5297-2312

表1.5 restrict域值

国家(或地区)
 限定代码
 
安道尔
 countryAD
 
阿拉伯联合酋长国
 countryAE
 
阿富汗
 countryAF
 
安提瓜和巴布达
 countryAG
 
安圭拉
 countryAI
 
阿尔巴尼亚
 countryAL
 
亚美尼亚
 countryAM
 
荷兰安的列斯群岛
 countryAN
 
安哥拉
 countryAO
 
南极洲
 countryAQ
 
阿根廷
 countryAR
 
美属萨摩亚群岛
 countryAS
 
奥地利
 countryAT
 
澳大利亚
 countryAU
 
阿鲁巴
 countryAW
 
阿塞拜疆
 countryAZ
 
波斯尼亚-黑塞哥维那
 countryBA
 
巴巴多斯
 countryBB
 
孟加拉国
 countryBD
 
比利时
 countryBE
 
布基纳法索
 countryBF
 
保加利亚
 countryBG
 
巴林
 countryBH
 
布隆迪
 countryBI
 
贝宁
 countryBJ
 
百慕大
 countryBM
 
文莱达鲁萨兰
 countryBN
 
玻利维亚
 countryBO
 
巴西
 countryBR
 
巴哈马
 countryBS
 
不丹
 countryBT
 
布维群岛
 countryBV
 
博茨瓦纳
 countryBW
 
白俄罗斯
 countryBY
 
伯利兹
 countryBZ
 
加拿大
 countryCA
 
科科斯(基林)群岛
 countryCC
 
民主刚果
 countryCD
 
中非共和国
 countryCF
 
刚果
 countryCG
 
布隆迪
 countryBI
 
贝宁
 countryBJ
 
百慕大
 countryBM
 
文莱达鲁萨兰
 countryBN
 
玻利维亚
 countryBO
 
巴西
 countryBR
 
巴哈马
 countryBS
 
不丹
 countryBT
 
布维群岛
 countryBV
 
博茨瓦纳
 countryBW
 
白俄罗斯
 countryBY
 
伯利兹
 countryBZ
 
加拿大
 countryCA
 
科科斯(基林)群岛

(译者注:此处原书有重复,请责编确定删否)
 countryCC
 
民主刚果
 countryCD
 
中非共和国
 countryCF
 
刚果
 countryCG
 
瑞士
 countryCH
 
科特迪瓦
 countryCI
 
库克群岛
 countryCK
 
智利
 countryCL
 
喀麦隆
 countryCM
 
中国
 countryCN
 
哥伦比亚
 countryCO
 
哥斯达黎加
 countryCR
 
古巴
 countryCU
 
佛得角
 countryCV
 
圣诞岛
 countryCX
 
塞浦路斯
 countryCY
 
捷克共和国
 countryCZ
 
德国
 countryDE
 
吉布提
 countryDJ
 
丹麦
 countryDK
 
多米尼加
 countryDM
 
多名尼加共和国
 countryDO
 
阿尔及利亚
 countryDZ
 
厄瓜多尔
 countryEC
 
爱沙尼亚
 countryEE
 
埃及
 countryEG
 
西撒哈拉
 countryEH
 
厄立特里亚
 countryER
 
西班牙
 countryES
 
埃塞俄比亚
 countryET
 
欧盟
 countryEU
 
芬兰
 countryFI
 
斐济
 countryFJ
 
福克兰群岛(玛尔维娜)
 countryFK
 
密克罗尼西亚
 countryFM
 
法罗群岛
 countryFO
 
法国
 countryFR
 
法属美特罗波利坦
 countryFX
 
加蓬
 countryGA
 
英国
 countryUK
 
乔治亚
 countryGD
 
法属奎亚那
 countryGE
 
加纳
 countryGF
 
直布罗陀
 countryGH
 
格陵兰
 countryGL
 
冈比亚
 countryGM
 
几内亚
 countryGN
 
瓜德罗普
 countryGP
 
赤道几内亚
 countryGQ
 
希腊
 countryGR
 
南乔治亚和南桑威治
 countryGS
 
危地马拉
 countryGT
 
关岛
 countryGU
 
几内亚比绍
 countryGW
 
圭亚那
 countryGY
 
中国香港
 countryHK
 
赫德岛和麦克康纳群岛
 countryHM
 
洪都拉斯
 countryHN
 
克罗地亚(本地名:赫尔瓦次卡)
 countryHR
 
海地
 countryHT
 
匈牙利
 countryHU
 
印度尼西亚
 countryID
 
爱尔兰
 countryIE
 
以色列
 countryIL
 
印度
 countryIN
 
英属印度洋领地
 countryIO
 
伊拉克
 countryIQ
 
伊朗伊斯兰共和国
 countryIR
 
冰岛
 countryIS
 
意大利
 countryIT
 
牙买加
 countryJM
 
约旦
 countryJO
 
日本
 countryJP
 
肯尼亚
 countryKE
 
吉尔吉斯斯坦
 countryKG
 
柬埔寨
 countryKH
 
基里巴斯
 countryKI
 
科摩罗
 countryKM
 
圣基茨和尼维斯
 countryKN
 
朝鲜
 countryKP
 
韩国
 countryKR
 
科威特
 countryKW
 
开曼群岛
 countryKY
 
哈萨克斯坦
 countryKZ
 
老挝
 countryLA
 
黎巴嫩
 countryLB
 
圣卢西亚
 countryLC
 
列支敦士登
 countryLI
 
斯里兰卡
 countryLK
 
利比里亚
 countryLR
 
莱索托
 countryLS
 
立陶宛
 countryLT
 
卢森堡
 countryLU
 
拉脱维亚
 countryLV
 
大阿拉伯利比亚
 countryLY
 
摩洛哥
 countryMA
 
摩纳哥
 countryMC
 
摩尔多瓦
 countryMD
 
马达加斯加
 countryMG
 
马歇尔群岛
 countryMH
 
马其顿,前南斯拉夫共和国
 countryMK
 
马里
 countryML
 
缅甸
 countryMM
 
蒙古
 countryMN
 
中国澳门
 countryMO
 
北马里亚纳群岛
 countryMP
 
马提尼克
 countryMQ
 
蒙特塞拉特
 countryMS
 
马耳他
 countryMT
 
毛里求斯
 countryMU
 
马尔代夫
 countryMV
 
马拉维
 countryMW
 
墨西哥
 countryMX
 
马来群岛
 countryMY
 
莫桑比克
 countryMZ
 
纳米比亚
 countryNA
 
新喀里多尼亚
 countryNC
 
尼日尔
 countryNE
 
诺福克岛
 countryNF
 
尼日利亚
 countryNG
 
尼加拉瓜
 countryNI
 
荷兰
 countryNL
 
挪威
 countryNO
 
尼泊尔
 countryNP
 
瑙鲁
 countryNR
 
纽埃
 countryNU
 
新西兰
 countryNZ
 
阿曼
 countryOM
 
巴拿马
 countryPA
 
秘鲁
 countryPE
 
法属玻利尼西亚(French Polynesia)
 countryPF
 
巴布亚新几内亚
 countryPG
 
菲律宾
 countryPH
 
巴基斯坦
 countyPK
 
波兰
 countryPL
 
圣皮埃尔和密克隆岛
 countryPM
 
皮特凯恩
 countryPN
 
波多黎各
 countryPR
 
巴勒斯坦
 countryPS
 
葡萄牙
 countryPT
 
帕劳群岛
 countryPW
 
巴拉圭
 countryPY
 
卡塔尔
 countryQA
 
留尼旺
 countryRE
 
罗马尼亚
 countryRO
 
俄罗斯联邦
 countryRU
 
卢旺达
 countryRW
 
沙特阿拉伯
 countrySA
 
所罗门群岛
 countrySB
 
塞舌尔
 countrySC
 
苏丹
 countrySD
 
瑞典
 countrySE
 
新加坡
 countrySG
 
圣路易斯
 countrySH
 
斯洛文尼亚
 countrySI
 
斯瓦尔巴特和扬马延岛
 countrySJ
 
斯洛伐克(斯洛伐克共和国)
 countrySK
 
塞拉利昂
 countrySL
 
圣马力诺
 countrySM
 
塞内加尔
 countrySN
 
索马里
 countrySO
 
苏里南
 countrySR
 
圣多美和普林西比
 countryST
 
萨尔瓦多
 countrySV
 
叙利亚
 countrySY
 
斯威士兰
 countrySZ
 
特克斯和凯克斯群岛
 countryTC
 
乍得湖
 countryTD
 
法属南部领地
 countryTF
 
多哥
 countryTG
 
泰国
 countryTH
 
塔吉克斯坦
 countryTJ
 
托克劳群岛
 countryTK
 
土库曼斯坦
 countryTM
 
突尼斯
 countryTN
 
汤加
 countryTO
 
东帝汶
 countryTP
 
土耳其
 countryTR
 
特立尼达和多巴哥
 countryTT
 
图瓦卢
 countryTV
 
中国台湾
 countryTW
 
坦桑尼亚
 countryTZ
 
乌克兰
 countryUA
 
乌干达
 countryUG
 
美国本土外小岛屿
 countryUM
 
美利坚合众国
 countryUS
 
乌拉圭
 countryUY
 
乌兹别克斯坦
 countryUZ
 
梵蒂冈
 countryVA
 
圣文森特和格林纳丁斯
 countryVC
 
委内瑞拉
 countryVE
 
英属维尔京群岛
 countryVG
 
美属维尔京群岛
 countryVI
 
越南
 countryVN
 
瓦努阿图
 countryVU
 
瓦利斯群岛和富图纳群岛
 countryWF
 
萨摩亚
 countryWS
 
也门
 countryYE
 
马约特
 countryYT
 
南斯拉夫
 countryYU
 
南非
 countryZA
 
赞比亚
 countryZM
 
扎伊尔
 countryZR
 


0 0