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

2024-04-19 06:55:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我在网络爬虫/抓取方面的知识非常有限,我正在尝试创建一个网络爬虫程序。但是,当我尝试从服务器打印响应文本时,我得到以下结果:

<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])

Tags: 文本程序网络browser服务器urlyourrequest
1条回答
网友
1楼 · 发布于 2024-04-19 06:55:41

尝试使用BeautifulSoup和一个头来像屏蔽真实请求一样屏蔽您的请求:

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)

相关问题 更多 >