天天看點

“You don't have permission to access the URL on this server. Sorry for the inconvenience.”解決辦法

有些網站,如“簡書”網站,直接使用浏覽器打開網站的時候正常,但使用Python requests.get(url)這個方法請求接口,會出現以下報錯:

<h1>403 Forbidden</h1>

<p>You don't have permission to access the URL on this server. Sorry for the inconvenience.<br/>

Please report this message and include the following information to us.<br/>

Thank you very much!</p>

如下圖:

“You don't have permission to access the URL on this server. Sorry for the inconvenience.”解決辦法

嘗試了一些方法,發現原因是我們是直接Get請求資料,而浏覽器的請求是有Header的。 基于這一點,把請求僞裝成浏覽器請求,就可以解決這個問題了。如下圖所示:

“You don't have permission to access the URL on this server. Sorry for the inconvenience.”解決辦法

 下面是收集到常用的headers裡的'User-Agent'

User-Agent = [

    "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36",

    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36",

    "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0",

    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14",

    "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)",

    'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',

    'Opera/9.25 (Windows NT 5.1; U; en)',

    'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',

    'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',

    'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12',

    'Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9',

    "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Ubuntu/11.04 Chromium/16.0.912.77 Chrome/16.0.912.77 Safari/535.7",

    "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0 "

]

擴充閱讀:

程式使用一段時間後會遇到HTTP Error 403: Forbidden錯誤。 因為在短時間内直接使用Get擷取大量資料,會被伺服器認為在對它進行攻擊,是以拒絕我們的請求,自動把電腦IP封了。 解決這個問題有兩種方法。一是将請求加以包裝,變成浏覽器請求模式,而不再是“赤裸裸”的請求。 但有時伺服器是根據同一IP的請求頻率來判斷的,即使僞裝成不同浏覽器。由于是同一IP通路,還是會被封。 是以就有了第二種方法,就是降低請求頻率。具體說來也有兩種方法。一種是在每次請求時暫停短暫時間,進而降低請求頻率。 第二種是使用不同的IP進行通路。顯然第一種方法不是最佳選擇。 因為我們并不希望下載下傳太慢,尤其是在請求次數很多時。當然如果間隔很短時間,從感官上并無差别,如0.1秒。 但對于伺服器而言頻率就降低了很多。 是以這是一種最安全可靠的辦法,盡管我們并不想用它。第二種方法也就是使用代理IP。(https://blog.csdn.net/u011808673/article/details/80609221)