使用jsoup获取google结果时出现403错误

lak*_*man 5 java http-status-code-403 jsoup

我正在尝试使用以下代码获取Google搜索结果:

Document doc = con.connect("http://www.google.com/search?q=lakshman").timeout(5000).get();
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个例外:

org.jsoup.HttpStatusException: HTTP error fetching URL. Status=403,URL=http://www.google.com/search?q=lakshman
Run Code Online (Sandbox Code Playgroud)

403错误意味着服务器禁止访问,但我可以在Web浏览器中加载此URL.为什么Jsoup会收到403错误?

Lia*_*ang 31

您只需将UserAgent属性添加到HTTP标头,如下所示:

Jsoup.connect(itemUrl)
     .userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36")
     .get()
Run Code Online (Sandbox Code Playgroud)


Row*_*ish 6

谷歌不允许机器人,你不能使用jsoup连接谷歌.您可以使用Google网页搜索API(已弃用),但每天可能会提出的请求数量有限.