Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shipengtaov/discover-books
发现图书:豆瓣图书关系图
https://github.com/shipengtaov/discover-books
books douban douban-book douban-crawler neo4j python
Last synced: 3 months ago
JSON representation
发现图书:豆瓣图书关系图
- Host: GitHub
- URL: https://github.com/shipengtaov/discover-books
- Owner: shipengtaov
- License: mit
- Created: 2017-06-19T17:21:56.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-03-09T03:28:58.000Z (almost 3 years ago)
- Last Synced: 2024-07-30T14:19:13.889Z (4 months ago)
- Topics: books, douban, douban-book, douban-crawler, neo4j, python
- Language: Python
- Homepage:
- Size: 1.09 MB
- Stars: 56
- Watchers: 8
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-hacking-lists - shipengtaov/discover-books - 发现图书:豆瓣图书关系图 (Python)
README
发现图书
=======从豆瓣某一指定图书页开始抓取豆瓣推荐书目,图书与图书之间建立 RELATE 关系;之后可以使用 Neo4j Browser() 浏览图书。
欢迎 star,欢迎提交 pull requests :hatching_chick:
安装
----* 首先安装 [neo4j](https://neo4j.com/)
* 再安装 Python 依赖:
$ pip install requirements.txt
* 最后修改 `crawler/config.py` 中的 `NEO4J_AUTH`:
NEO4J_AUTH = ('你的 neo4j 用户名,默认一般为 neo4j', '你的 neo4j 密码')
运行
----**以 ''(-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
#### 以 '' 作为起点抓取的 100 本书:
![Core-Python-Programming](images/Core-Python-Programming.png)
#### 以 '' 作为起点抓取的 200 本书:
![Edge-of-Eternity](images/Edge-of-Eternity.png)
测试
----$ 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 nLicense
--------[MIT](LICENSE)