GitPedia

Discover books

发现图书:豆瓣图书关系图

From shipengtaov·Updated May 8, 2026·View on GitHub·

从豆瓣某一指定图书页开始抓取豆瓣推荐书目,图书与图书之间建立 RELATE 关系;之后可以使用 Neo4j Browser() 浏览图书。 The project is written primarily in Python, distributed under the MIT License license, first published in 2017. Key topics include: books, douban, douban-book, douban-crawler, neo4j.

发现图书

从豆瓣某一指定图书页开始抓取豆瓣推荐书目,图书与图书之间建立 RELATE 关系;之后可以使用 Neo4j Browser(http://localhost:7474) 浏览图书。

欢迎 star,欢迎提交 pull requests :hatching_chick:

安装

  • 首先安装 neo4j

  • 再安装 Python 依赖:

      $ pip install requirements.txt
    
  • 最后修改 crawler/config.py 中的 NEO4J_AUTH

      NEO4J_AUTH = ('你的 neo4j 用户名,默认一般为 neo4j', '你的 neo4j 密码')
    

运行

以 'https://book.douban.com/subject/3112503/'(-u) 作为起点开始抓取,最多抓取 100(-C) 本书,开启 8(-t) 个线程:

$ python start_crawler.py -u 'https://book.douban.com/subject/3112503/' -C 100 -t 8

# windows 系统下
$ python start_crawler.py -u https://book.douban.com/subject/3112503/ -C 100 -t 8

打印帮助信息:

$ python start_crawler.py -h

以 'https://book.douban.com/subject/3112503/' 作为起点抓取的 100 本书:

Core-Python-Programming

以 'https://book.douban.com/subject/27025715/' 作为起点抓取的 200 本书:

Edge-of-Eternity

测试

$ pip install -r requirements-dev.txt
$ pytest

已测试通过 python2.7, python3.6

一些 cypher 语句

查看与某一本书有关联的书:

# 替换 book_id 为你想要查看的书
match p=(n:DOUBAN_BOOK {book_id:3112503})-[:RELATE*]-() return p

# 限制返回数量:
match p=(n:DOUBAN_BOOK {book_id:3112503})-[:RELATE*]-() return p limit 30

删除数据库数据:

# 删除与某一本书有关的所有数据(包括node和relation)
match p=(n:DOUBAN_BOOK {book_id:3112503})-[:RELATE*]-() delete p

# 删除数据库中所有抓取的图书
match (n:DOUBAN_BOOK) detach delete n

License

MIT

Contributors

Showing top 1 contributor by commit count.

View all contributors on GitHub →

This article is auto-generated from shipengtaov/discover-books via the GitHub API.Last fetched: 6/29/2026