Как исправить Forbidden: получил 403 HTTP-ответа в praw? - PullRequest
1 голос
/ 20 июня 2019

Я хочу собрать заголовок поста на Reddit для анализа. Благодаря постоянной отладке моего кода, я могу получить заголовок сообщения. Внезапно я получил Forbidden 403 при попытке использовать PRAW для сбора сообщений. Онлайновое объяснение таково: «Доступ к странице или ресурсу, который вы пытались открыть, абсолютно запрещен. Другими словами, ошибка 403 означает, что у вас нет доступа к тому, что вы пытаетесь просмотреть». Пожалуйста, скажи мне, что мне делать. Спасибо

попробуйте добавить несколько заголовков и использовать задержку

url="https://www.reddit.com"

my_headers=["Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html",
"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Safari/605.1.15",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31"
]

def get_content(url,headers):

    randdom_header=random.choice(headers)

    req=urllib.Request(url)
    req.add_header("User-Agent",randdom_header)           
    req.add_header("Host","www.reddit.com")
    req.add_header("Referer","https://www.reddit.com")
    req.add_header("GET",url)

    content=urllib.urlopen(req).read()
    return content

print (get_content(url,my_headers))
...