Python Ошибка запросов 400 Браузер отправил неверный запрос - PullRequest
2 голосов
/ 13 апреля 2020

У меня очень ограниченные знания в области сканирования и сканирования в Интернете, и я пытаюсь создать веб-сканер для этого 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])

1 Ответ

2 голосов
/ 13 апреля 2020

Попробуйте использовать 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)
...