我尝试使用bash命令wget下载此网页http://maps.googleapis.com/maps/api/geocode/xml?address=Coimbatore+&sensor=true(Google maps api)。但我得到的回应是一个页面,告诉我该请求被拒绝。我尝试使用Python urllib函数下载相同的内容,这是成功的。那么wget有什么特别之处呢?或者我错过了什么?
答案 0 :(得分:3)
Bash对& 字符有特殊含义。您需要使用反斜杠( \ )或将整个网址用单引号(')打包。
答案 1 :(得分:1)
这是因为特殊字符由bash(例如?
和&`来解释,后者在后台进行处理)。
只需将它包装在简单的引号旁边,就可以了。
答案 2 :(得分:1)
我可以想象这是因为robots.txt
您可以将UserAgent调整为(可能)过去
如果您拥有网站所有者的权限(!!!),则可以通过将-erobots=off
传递给wget来忽略robots.txt,因此:
wget -erobots=off \
'http://maps.googleapis.com/maps/api/geocode/xml?address=Coimbatore+&sensor=true'