├── .github └── workflows │ └── gh-pages.yml ├── .gitignore ├── .vscode └── launch.json ├── LICENSE ├── README-en.md ├── README.md ├── analysis ├── main.py └── v2ex-analysis │ ├── .gitignore │ ├── README.md │ ├── env.d.ts │ ├── index.html │ ├── package.json │ ├── pnpm-lock.yaml │ ├── postcss.config.js │ ├── public │ ├── favicon.ico │ ├── new-comment-every-month.json │ ├── new-member-every-month.json │ ├── new-topic-every-month.json │ ├── tag-usage-count.json │ ├── top-comment.json │ ├── top-topic-by-clicks.json │ ├── top-topic-by-favorite_count.json │ ├── top-topic-by-thank_count.json │ ├── top-topic-by-votes.json │ ├── top-user-by-comment_count.json │ └── top-user-by-topic_count.json │ ├── src │ ├── App.vue │ ├── assets │ │ ├── base.css │ │ ├── logo.svg │ │ └── main.css │ ├── components │ │ ├── TopComment.vue │ │ ├── TopMember.vue │ │ ├── TopTag.vue │ │ ├── TopTopic.vue │ │ └── base │ │ │ ├── Comment.vue │ │ │ ├── Member.vue │ │ │ ├── Node.vue │ │ │ ├── Tag.vue │ │ │ └── Topic.vue │ ├── main.ts │ └── types │ │ └── F.ts │ ├── tailwind.config.js │ ├── tsconfig.app.json │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts ├── image └── t │ ├── 1688469358680.png │ ├── 1688470374959.png │ ├── 1688470738877.png │ ├── 水深火热-每月新增帖子.png │ └── 水深火热-每月新增评论.png ├── main.py ├── query.sql ├── requirements-analysis.txt ├── requirements.txt ├── scrapy.cfg ├── user-agents.txt └── v2ex_scrapy ├── DB.py ├── __init__.py ├── insert_ignore.py ├── items.py ├── middlewares.py ├── pipelines.py ├── settings.py ├── spiders ├── CommonSpider.py ├── V2exMemberSpider.py ├── V2exNodeTopicSpider.py ├── V2exSpider.py └── __init__.py ├── utils.py └── v2ex_parser.py /.github/workflows/gh-pages.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/.github/workflows/gh-pages.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/.gitignore -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/LICENSE -------------------------------------------------------------------------------- /README-en.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/README-en.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/README.md -------------------------------------------------------------------------------- /analysis/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/main.py -------------------------------------------------------------------------------- /analysis/v2ex-analysis/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/.gitignore -------------------------------------------------------------------------------- /analysis/v2ex-analysis/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/README.md -------------------------------------------------------------------------------- /analysis/v2ex-analysis/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /analysis/v2ex-analysis/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/index.html -------------------------------------------------------------------------------- /analysis/v2ex-analysis/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/package.json -------------------------------------------------------------------------------- /analysis/v2ex-analysis/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/pnpm-lock.yaml -------------------------------------------------------------------------------- /analysis/v2ex-analysis/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/postcss.config.js -------------------------------------------------------------------------------- /analysis/v2ex-analysis/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/public/favicon.ico -------------------------------------------------------------------------------- /analysis/v2ex-analysis/public/new-comment-every-month.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/public/new-comment-every-month.json -------------------------------------------------------------------------------- /analysis/v2ex-analysis/public/new-member-every-month.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/public/new-member-every-month.json -------------------------------------------------------------------------------- /analysis/v2ex-analysis/public/new-topic-every-month.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/public/new-topic-every-month.json -------------------------------------------------------------------------------- /analysis/v2ex-analysis/public/tag-usage-count.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/public/tag-usage-count.json -------------------------------------------------------------------------------- /analysis/v2ex-analysis/public/top-comment.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/public/top-comment.json -------------------------------------------------------------------------------- /analysis/v2ex-analysis/public/top-topic-by-clicks.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/public/top-topic-by-clicks.json -------------------------------------------------------------------------------- /analysis/v2ex-analysis/public/top-topic-by-favorite_count.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/public/top-topic-by-favorite_count.json -------------------------------------------------------------------------------- /analysis/v2ex-analysis/public/top-topic-by-thank_count.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/public/top-topic-by-thank_count.json -------------------------------------------------------------------------------- /analysis/v2ex-analysis/public/top-topic-by-votes.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/public/top-topic-by-votes.json -------------------------------------------------------------------------------- /analysis/v2ex-analysis/public/top-user-by-comment_count.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/public/top-user-by-comment_count.json -------------------------------------------------------------------------------- /analysis/v2ex-analysis/public/top-user-by-topic_count.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/public/top-user-by-topic_count.json -------------------------------------------------------------------------------- /analysis/v2ex-analysis/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/src/App.vue -------------------------------------------------------------------------------- /analysis/v2ex-analysis/src/assets/base.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/src/assets/base.css -------------------------------------------------------------------------------- /analysis/v2ex-analysis/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/src/assets/logo.svg -------------------------------------------------------------------------------- /analysis/v2ex-analysis/src/assets/main.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/src/assets/main.css -------------------------------------------------------------------------------- /analysis/v2ex-analysis/src/components/TopComment.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/src/components/TopComment.vue -------------------------------------------------------------------------------- /analysis/v2ex-analysis/src/components/TopMember.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/src/components/TopMember.vue -------------------------------------------------------------------------------- /analysis/v2ex-analysis/src/components/TopTag.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/src/components/TopTag.vue -------------------------------------------------------------------------------- /analysis/v2ex-analysis/src/components/TopTopic.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/src/components/TopTopic.vue -------------------------------------------------------------------------------- /analysis/v2ex-analysis/src/components/base/Comment.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/src/components/base/Comment.vue -------------------------------------------------------------------------------- /analysis/v2ex-analysis/src/components/base/Member.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/src/components/base/Member.vue -------------------------------------------------------------------------------- /analysis/v2ex-analysis/src/components/base/Node.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/src/components/base/Node.vue -------------------------------------------------------------------------------- /analysis/v2ex-analysis/src/components/base/Tag.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/src/components/base/Tag.vue -------------------------------------------------------------------------------- /analysis/v2ex-analysis/src/components/base/Topic.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/src/components/base/Topic.vue -------------------------------------------------------------------------------- /analysis/v2ex-analysis/src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/src/main.ts -------------------------------------------------------------------------------- /analysis/v2ex-analysis/src/types/F.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/src/types/F.ts -------------------------------------------------------------------------------- /analysis/v2ex-analysis/tailwind.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/tailwind.config.js -------------------------------------------------------------------------------- /analysis/v2ex-analysis/tsconfig.app.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/tsconfig.app.json -------------------------------------------------------------------------------- /analysis/v2ex-analysis/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/tsconfig.json -------------------------------------------------------------------------------- /analysis/v2ex-analysis/tsconfig.node.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/tsconfig.node.json -------------------------------------------------------------------------------- /analysis/v2ex-analysis/vite.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/analysis/v2ex-analysis/vite.config.ts -------------------------------------------------------------------------------- /image/t/1688469358680.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/image/t/1688469358680.png -------------------------------------------------------------------------------- /image/t/1688470374959.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/image/t/1688470374959.png -------------------------------------------------------------------------------- /image/t/1688470738877.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/image/t/1688470738877.png -------------------------------------------------------------------------------- /image/t/水深火热-每月新增帖子.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/image/t/水深火热-每月新增帖子.png -------------------------------------------------------------------------------- /image/t/水深火热-每月新增评论.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/image/t/水深火热-每月新增评论.png -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/main.py -------------------------------------------------------------------------------- /query.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/query.sql -------------------------------------------------------------------------------- /requirements-analysis.txt: -------------------------------------------------------------------------------- 1 | pandas==2.0.1 2 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/requirements.txt -------------------------------------------------------------------------------- /scrapy.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/scrapy.cfg -------------------------------------------------------------------------------- /user-agents.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/user-agents.txt -------------------------------------------------------------------------------- /v2ex_scrapy/DB.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/v2ex_scrapy/DB.py -------------------------------------------------------------------------------- /v2ex_scrapy/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /v2ex_scrapy/insert_ignore.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/v2ex_scrapy/insert_ignore.py -------------------------------------------------------------------------------- /v2ex_scrapy/items.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/v2ex_scrapy/items.py -------------------------------------------------------------------------------- /v2ex_scrapy/middlewares.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/v2ex_scrapy/middlewares.py -------------------------------------------------------------------------------- /v2ex_scrapy/pipelines.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/v2ex_scrapy/pipelines.py -------------------------------------------------------------------------------- /v2ex_scrapy/settings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/v2ex_scrapy/settings.py -------------------------------------------------------------------------------- /v2ex_scrapy/spiders/CommonSpider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/v2ex_scrapy/spiders/CommonSpider.py -------------------------------------------------------------------------------- /v2ex_scrapy/spiders/V2exMemberSpider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/v2ex_scrapy/spiders/V2exMemberSpider.py -------------------------------------------------------------------------------- /v2ex_scrapy/spiders/V2exNodeTopicSpider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/v2ex_scrapy/spiders/V2exNodeTopicSpider.py -------------------------------------------------------------------------------- /v2ex_scrapy/spiders/V2exSpider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/v2ex_scrapy/spiders/V2exSpider.py -------------------------------------------------------------------------------- /v2ex_scrapy/spiders/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/v2ex_scrapy/spiders/__init__.py -------------------------------------------------------------------------------- /v2ex_scrapy/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/v2ex_scrapy/utils.py -------------------------------------------------------------------------------- /v2ex_scrapy/v2ex_parser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oldshensheep/v2ex_scrapy/HEAD/v2ex_scrapy/v2ex_parser.py --------------------------------------------------------------------------------