Python 请求错误 400 浏览器发送了无效请求

Python Requests Error 400 Browser Sent An Invalid Request

我对 Web crawling/scraping 的了解非常有限,我正在尝试为此 URL 创建一个网络爬虫。但是,当我尝试从服务器打印响应文本时,我得到了这个:

<html><body><h1>400 Bad request</h1>
Your browser sent an invalid request.
</body></html>

我认为代码没有任何问题,因为它在我试过的其他网站上也能正常工作。希望你们这里的好人能帮我解决这个问题。这只是一种预感,但这是否是由于 url 没有以 .xml 结尾?

import requests
url = 'https://phys.org/rss-feed/'
res = requests.get(url)
print(res.text[:500])

尝试使用 BeautifulSoup 和 header 来掩饰您的真实请求:

import requests,lxml
from bs4 import BeautifulSoup
URL='https://phys.org/rss-feed/'
USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:65.0) Gecko/20100101 Firefox/65.0"
headers = {"user-agent": USER_AGENT}
resp = requests.get(URL, headers=headers)
soup = BeautifulSoup(resp.content, "lxml")
print(soup)

单独使用遮罩也有效:

import requests
URL='https://phys.org/rss-feed/'
USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:65.0) Gecko/20100101 Firefox/65.0"
headers = {"user-agent": USER_AGENT}
resp = requests.get(URL, headers=headers)