from requests import get
get('http://www.fb.com')
<Response [200]>
get('http://www.subscene.com')
<Response [403]
我正在尝试构建一个网络刮刀来抓取和下载字幕。但我无法请求任何字幕页面,因为他们正在返回响应代码403.
答案 0 :(得分:2)
HTTP状态代码403 Forbidden
表示:
服务器理解请求,但拒绝履行请求。 Source
服务器将您的脚本识别为非默认浏览器(Chrome,Firefox等)并拒绝与其“说话”。看到网站这样做是为了避免使用刮刀,这是很常见的,正是你想要做的......
解决方法是在标题中设置user-agent
,如下所示:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
url = "http://www.subscene.com"
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
response = requests.get(url, headers=headers)
print(response) # <Response [200]>
但我建议你寻找一个提供某种API的网站,依靠抓取不是最好的方法。