Как конвертировать ISBN в LCCN без использования API Google и Python? - PullRequest
0 голосов
/ 04 апреля 2019

Я хочу иметь возможность сканировать ISBN, и он преобразуется в LCCN в Python.Проблема, с которой я столкнулся, заключается в том, что ISBN можно найти в API amazons, однако его нельзя найти в Библиотеке Конгресса.Любые решения?

Я уже пытался получить LCCN с веб-сайта loc.gov, используя BeautifulSoup.Однако ISBN, который я сканирую на обратной стороне книги, не может быть найден на веб-сайте loc.gov

import requests
import re
from bs4 import BeautifulSoup


def isbn_to_lccn(isbn):
    """
    Use the Library of Congress (LOC) website to convert an International
    Standard Book Number (ISBN) into the corresponding Library of Congress
    Control Number (LCCN).

      >>> isbn_to_lccn('9781491958704')
      '2018418368'
    """
    regexp = re.compile(r'lccn\.loc\.gov')

    url_str = "https://catalog.loc.gov/vwebv/search?searchArg={0}" \
              "&searchCode=GKEY%5E*&searchType=0&recCount=25&sk=en_US"

    page = requests.get(url_str.format(isbn))
    data = page.text
    soup = BeautifulSoup(data, "html.parser")

    lccn_url = "asdf"
    for link in soup.find_all('a'):
        lccn_url = link.get('href')

        if regexp.search(lccn_url):
            break

    lccn = re.findall(r'[1-9].*$', lccn_url)

    if lccn:
        return lccn[0]
    return "Item not found."


if __name__ == '__main__':
    import doctest
    doctest.testmod()

Я ожидаю, что смогу отсканировать ISBN и получить LCCN & и LCC.

...