从真正的书店获取图书信息(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第三方库


热门话题
java在未知属性上的PUT和POST失败会引发不同的行为   java无法使GWTRPC正常工作   java如何在安卓中更改一个特定视图的主题?   机器学习为什么改变了java中等式的两面?   java继承和重定向标准输出   java为什么Clojure中嵌套循环/重复速度慢?   使用JavaParser解析Java代码并查找父节点的语句类型   java读取类的方法并在arraylist中存储Web服务的路径名   java模板聚合匹配和投影一个没有id的字段   java为什么给定数组不返回false   java如何链接JLabel和JSpinner以调整大小   在java中,当过滤器只返回一个对象时,如何使用流和过滤器将值填充到对象中   java为什么使用getInstance   如何得到我的。运行java命令的bat文件