服务器在 python 中使用请求库时发送 403 状态代码,但适用于浏览器

server sends 403 status code when using requests library in python, but works with browser

我正在尝试使用 python 的请求模块自动登录,但每当我使用 POST 或 GET 请求时,服务器都会发送 403 状态代码;奇怪的是,我可以使用任何浏览器访问相同的 URL,但它不适用于 curl 和请求。 这是代码:

import requests
import lxml
from bs4 import BeautifulSoup
import os

url = "https://ais.usvisa-info.com/en-am/niv/users/sign_in"
req = requests.get(url).text
soup = BeautifulSoup(req, 'lxml')
ready = soup.prettify()

FILE = open("usvisa.html", "w")
FILE.write(ready)
FILE.close()

如果有任何帮助或想法,我将不胜感激!

可能是 /robots.txt 阻碍了您。 尝试用自定义用户代理覆盖用户代理。

import requests
import lxml
from bs4 import BeautifulSoup
import os

headers={"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"}


url = "https://ais.usvisa-info.com/en-am/niv/users/sign_in"
req = requests.get(url, headers=headers).text
soup = BeautifulSoup(req, 'lxml')
ready = soup.prettify()

FILE = open("usvisa.html", "w", encoding="utf-8")
FILE.write(ready)
FILE.close()
  • 您也没有在打开文件时指定文件编码。