網站爬蟲發生HTTP 403 Forbidden

  • 433
  • 0
  • 2018-08-08

網站爬蟲發生HTTP 403 Forbidden

近期需要蒐集食譜資料

為了減少時間人工蒐集時間

因此使用網頁爬蟲方法來取得資料

使用HtmlAgilityPack來爬資料

首先要將資料取回來

需要使用WebClient將網頁資料取回來再做解析動作

結果發生以下錯誤

錯誤原因

使用WebClinet下載網頁時候Request header無帶User-Agent

解決方式

於程式中加入以下參數

_webClient.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko");
 

結論

若是以人工方式將網頁另存成html然後再進行爬蟲作業會正常取得資料,因為在瀏覽進該網站時候,Request的標頭是有帶User Agent,因此另存的網頁資料是正常的,若要以程式方式進行爬蟲作業,需要於Request Header上加上參數,才能正常將資料取回

參考資料

https://stackoverflow.com/questions/3272067/webclient-403-forbidden

http://www.petekcchen.com/2010/10/get-http403-using-webclient.html

https://ithelp.ithome.com.tw/questions/10190169?sc=rss.qu

http://shaurong.blogspot.com/2017/03/useragent.html