【问题标题】:Python requests html 403 responsePython 请求 html 403 响应
【发布时间】:2017-08-29 04:32:13
【问题描述】:

我在 python 中使用 requests 模块尝试在以下网站上进行搜索 http://musicpleer.audio/,但是这个网站似乎阻止了我,因为当我尝试访问它时它只发出 403,我想知道我是如何可以解决这个问题,我尝试将我的网络浏览器(chrome)的用户代理发送给它,但它仍然返回错误 403。关于如何解决这个问题的任何建议,从网站下载歌曲的示例将非常有帮助。在此先感谢

我的代码:

import requests, os

def funGetList:
    start_path = 'C:/Users/Jordan/Music/' # current directory
    list = []
    for path,dirs,files in os.walk(start_path):
        for filename in files:
            temp = (os.path.join(path,filename))
            tempLen = len(temp)
            "print(tempLen)"
            iterate = 0
            list.append(temp[22:(len(temp))-4])

def funDownloadMP3:
    for i in list:
        print(i)

    payload = {'searchQuery': 'meme', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'}
    url = 'http://musicpleer.audio/'
    print(requests.post(url, data=payload))

【问题讨论】:

  • HTTP/1.1 403 Forbidden 一般表示需要认证才能使用服务。 User-Agent 是一个标头,通常不是data 有效负载的一部分。你确定要POST吗?

标签: python html python-requests


【解决方案1】:

User-Agent 放在标题中似乎可行:

In []:
import requests
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'}
url = 'http://musicpleer.audio/'
r = requests.get('{}#!{}'.format(url, 'meme'), headers=headers)
r.status_code

Out[]:
200

注意:搜索网址看起来很简单'#!<search-term>'

【讨论】:

    【解决方案2】:

    HTML 403 禁止的错误代码。 服务器可能期待更多的请求标头,例如 Host 或 Cookies 等。 您可能想使用Postman 轻松调试它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 2022-01-20
      • 2016-08-17
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2021-11-17
      相关资源
      最近更新 更多