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)
我对 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)