Goodreads утверждает, что я могу получить XML, который начинается с корня с именем <GoodreadsResponse>
, чей 1-й дочерний элемент равен <book>
, 8-й дочерний элемент которого равен image_url
. Проблема в том, что я не могу заставить его распознать правильный корень (он печатает root
, а не GoodreadsResponse
и не может распознать, что у корня вообще есть дочерние элементы, хотя код ответа 200. Я предпочитаю работать с JSON и, как утверждается, вы можете конвертировать его в JSON, но мне повезло с этим.
Вот функция, которая у меня есть на данный момент. Куда я иду не так?
def main(url, payload):
"""Retrieves image from Goodreads API endpoint returning XML response"""
res = requests.get(url, payload)
status = res.status_code
print(status)
parser = etree.XMLParser(recover=True)
tree = etree.fromstring(res.content, parser=parser)
root = etree.Element("root")
print(root.text)
if __name__ == '__main__':
main("https://www.goodreads.com/book/isbn/", '{"isbns": "0441172717", "key": "my_key"}')
Информация о Goodreads находится здесь:
**Get the reviews for a book given an ISBN**
Get an xml or json response that contains embed code for the iframe reviews widget that shows excerpts (first 300 characters) of the most popular reviews of a book for a given ISBN. The reviews are from all known editions of the book.
URL: https://www.goodreads.com/book/isbn/ISBN?format=FORMAT (sample url)
HTTP method: GET