【问题标题】:Python 403 Forbidden Error when sending Requests even with headers即使带有标头也发送请求时出现 Python 403 禁止错误
【发布时间】:2022-12-16 15:20:39
【问题描述】:

正如上面的标题所述,我收到了 403 错误。生成的 URL 是有效的,我可以打印它们,然后在我的浏览器中打开它们就好了。我得到了整个请求标头,但仍然是 403 Forbidden,有人可以帮我解决吗?

    import requests
    from bs4 import BeautifulSoup
    header = {
        "sec-ch-ua": '" Not A;Brand";v="99", "Chromium";v="99", "Microsoft Edge";v="99"',
        "sec-ch-ua-mobile": "?0",
        "sec-ch-ua-platform": "Windows",
        "Upgrade-Insecure-Requests": "1",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36 Edg/99.0.1150.30"
    }
    url="https://www.nadirkitap.com/"
    get = requests.get(url,headers=header)
    
    print(get.status_code)

【问题讨论】:

    标签: python beautifulsoup python-requests


    【解决方案1】:

    查看响应文本 - 它告诉网站受 cloudflare 保护,您需要激活 JavaScript。因为 requests 不处理这个,你可以使用 selenium 代替。

    例子

    包含基于 driver.page_sourceBeautifulSoup 对象并打印书名列表:

    from bs4 import BeautifulSoup
    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service
    
    service = Service('PATH TO YOUR CHROMEDRIVER')
    driver = webdriver.Chrome(service=service)
    
    driver.get('https://www.nadirkitap.com/')
    soup = BeautifulSoup(driver.page_source)
    
    print([t['title'] for t in soup.select('a[title]')])
    

    输出

    ['İkinci el kitap, yeni kitap, dergi, efemera', 'İkinci el kitap, yeni kitap, dergi, efemera', 'İkinci el kitap ve yeni kitap', 'Bilim ve Teknik Kitapları', 'Çizgi Roman Kitapları', 'Çocuk Kitapları', 'Dini Kitaplar', 'Edebiyat Kitapları', 'Ekonomi ve İş Dünyası Kitapları', 'Felsefe Kitapları', 'Hukuk Kitapları', 'Osmanlıca Kitaplar',...]
    

    【讨论】:

    • 抱歉回复晚了,谢谢你的好心回答。它运行良好,但我忘记选择您的回复作为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2018-06-30
    • 2019-08-07
    • 2016-05-16
    • 1970-01-01
    • 2011-06-24
    相关资源
    最近更新 更多