从真正的书店获取图书信息(ISBN或搜索)。

bookshops的Python项目详细描述


通过网络抓取获取图书信息

这个图书馆是为了获取图书信息。我们可以搜索 keywords,使用isbn,使用advanced search,并执行 分页

我们从现有网站获取数据。我们刮擦:

我们得到:书名和作者,价格,出版商,封面, 等

从ods或csv文件导入数据

这个库的另一个目标是轻松地获取大量的书籍 已在ODS或CSV文件中列出。

如果你的文件有一个“isbn”和一个“quantity”列,很容易,我们会 找到所有的图书信息。

如果它只有标题和出版商,它是可行的,但容易出错。 我们仍然可以做,但你应该清点一下你的存货 之后。

请参阅odsimport模块。它返回一个json。是你的 在数据库中添加所需内容的责任(在 阿贝鲁乔https://gitlab.com/vindarel/abelujo)。

可用,但仍在进行中。

接受的格式和列

我们可以读取ods和csv文件。

  • 带有“isbn”和“quantity”列的文件,
  • 一个列为“title”、“publisher”、“isbn”的文件 箱子,“货架”,“经销商”,“数量”。有no“价格” 列。“作者”是可选的(它可以帮助获取正确的 书)。

如果文件没有头,请使用“odsettings.py”配置文件 (特别是,要设置CSV分隔符,请使用“,”或“;”)。

为什么不是亚马逊?

亚马逊扼杀了图书业及其员工。而且,我们可以 为我们的成果增值。我们可以链接到一家独立的好书店 在我们的应用程序中,我们可以从中命令书本,我们可以 比如说它是否有现成的样本等等……我们在 做这个!

从技术上讲,amazon api web服务可能过于局限 也不合适。必须注册亚马逊产品广告和 对于aws,请求速率限制为每秒1个请求。

为什么不谷歌图书?

数据很少。

为什么不去法国国家图书馆呢?

因为,对于书店来说,我们需要最近出版的书(它们进入bnf 数据库几个月后),最新信息。没有多少 工具也一样。

安装

从pypi安装:

pip install bookshops

使用

命令行

可以使用以下命令在命令行上尝试此库: livres:法语书籍-libros:西班牙语书籍-bucher: 德语书籍-来索取更多:)

例如:

livres antigone

livres 9782918059363

你得到上面的截图。

选项:(这可能因刮刀而异,请使用 -h)--i--isbn,以确保获得所有ISBN。这个 如果需要获取命令行工具,则默认情况下不会获取它们 每本书都有一个http请求。这取决于网站。

作为图书馆

但最重要的是,在您的程序中:

from bookshops.frFR.librairiedeparis.librairiedeparisScraper import Scraper as frenchScraper

scraper = frenchScraper("search keywords")
cards = scraper.search()
# we get a list of dictionnaries with the title, the authors, etc.

开发和测试

http://dev.abelujo.cc/webscraping.html

开发模式:

pip install -e .

现在您可以编辑项目并运行开发版本,如 lib应该运行,即使用entry_pointslivreslibros等。

文件: https://python-packaging-user-guide.readthedocs.org/en/latest/distributing/#working-in-development-mode

错误和缺点

这是网络垃圾,所以它不会没有陷阱:

  • 网站可以关闭。已经发生了。
  • 网站可以更改,如果是这样,我们就必须更改我们的文件 我也是。这可以通过自动化和频繁的测试及早发现 (工作正在进行)。

更改日志

0.2.1

  • 德国刮刀:按ISBN搜索

0.2.0

  • 德国刮刀
  • 德国刮刀的多处理(从15秒到9秒)(参见issue #1
  • --isbn选项

0.1.x

  • 法国、西班牙刮刀
  • 命令行工具

许可证

lgplv3

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
带truezip的java拆分zip   java Spring,AppEngine:在AppEngine的数据源中添加postgresql url   java Android coverflow   java以编程方式创建复合过滤器,以在log4j 2中定义多个过滤器   java jpa eclipselink异常[eclipselink 4002]   中的java WordNet数据库目录相对路径。罐子   java无法在Spring Boot 2/3中显示登录的用户   java Onetomany:未找到联接表错误   java数据模型演化   java方法在类型列表中添加的(对象)不适用于参数(int)意味着什么?   用java打印两个数组   java SNMP4J发送从不超时   java添加/删除联系人(EditText)+类别(SpinnerBox),可以根据需要动态添加/删除多个联系人   语句和PreparedStatement之间的java差异   java在运行作为JAR归档文件分发的项目时加载图像等资源   来自应用程序或外部服务器的java Cron作业   多线程Java并发:并发添加和清除列表项   java更改单元测试的私有方法行为