1. 程式人生 > >org.jsoup.HttpStatusException: HTTP error fetching URL. Status=403

org.jsoup.HttpStatusException: HTTP error fetching URL. Status=403

csdn webkit copy ebp odi DC lang hit -m

爬取網站的時候 conn = Jsoup.connect(url).timeout(5000).get();直接用get方法,有些網站可以正常爬取。

但是有些網站報403錯誤,403是一種在網站訪問的過程中,常見的錯誤提示。表示資源不可用,服務器理解客戶對的請求,但是拒絕處理它,通常由服務器上文件或者目錄的權限設置導致的web訪問錯誤。

解決方法無非就是從這幾個角度:useragent,referer,token,cokkie

所以我們給連接添加模擬瀏覽器的header:

[java] view plain copy
  1. <span style="white-space:pre;"> </span>conn = Jsoup.connect(url).timeout(5000);
  2. conn.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
  3. conn.header("Accept-Encoding", "gzip, deflate, sdch");
  4. conn.header("Accept-Language", "zh-CN,zh;q=0.8");
  5. conn.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36");

然後再執行conn.get()

就可以得到數據了。

org.jsoup.HttpStatusException: HTTP error fetching URL. Status=403