Приведенный ниже код запрашивает у API Википедии страницы в категории «Физика» и преобразует ответ в словарь Python.
import ast
import requests
url = "https://en.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:Physics&cmlimit=500&cmcontinue="
response = requests.get(url)
text = response.text
dict = ast.literal_eval(sourceCode)
Вот один из результатов, возвращаемых API Википедии:
{
"pageid": 50724262,
"ns": 0,
"title": "Blasius\u2013Chaplygin formula"
},
Странице Википедии, которой соответствует "Blasius\u2013Chaplygin formula"
, является https://en.wikipedia.org/wiki/Blasius–Chaplygin_formula.
Я хочу использовать «заголовок» для загрузки страниц из Википедии.Я заменил все пробелы подчеркиванием.Но это терпит неудачу.Я делаю:
import requests
url = "https://en.wikipedia.org/wiki/Blasius\u2013Chaplygin_formula"
response = requests.get(url)
Это дает мне:
requests.exceptions.HTTPError: 404 Client Error:
Not Found for url: https://en.wikipedia.org/wiki/Blasius%5Cu2013Chaplygin_formula
Как мне поменять заголовок Blasius\u2013Chaplygin formula
на URL, который может быть успешно вызван requests
?
Когда я попытался вставить ссылку на Википедию в этот вопрос о переполнении стека, переполнение стека автоматически преобразовало ее в https://en.wikipedia.org/wiki/Blasius%E2%80%93Chaplygin_formula.
Когда я сделал:
import requests
url = "https://en.wikipedia.org/wiki/Blasius%E2%80%93Chaplygin_formula"
response = requests.get(url)
это былоуспешно, поэтому я хочу библиотеку, которая будет выполнять преобразование, подобное этому, которое я могу использовать в Python.