• This repository has been archived on 09/May/2021
  • Stars
    star
    175
  • Rank 218,059 (Top 5 %)
  • Language
  • License
    GNU General Publi...
  • Created over 9 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

磁力链接和 BT 种子的搜索引擎

{Magnet & Torrent} Search Engine

磁力链接和 BT 种子的搜索引擎 {Magnet & Torrent}

系统功能和用到的技术。

系统包括几个独立的部分:

  • 使用 Python 的 Scrapy 框架开发的网络爬虫,用来爬取磁力链接和种子;

  • 使用 PHP CI 框架开发的简易网站;

  • 搜索引擎目前直接使用的 MySQL,将来可以考虑使用 sphinx;

  • 中文分词。

    用 PHP 写了一个简陋版的基于逆向最大匹配算法的小类,词库呢,哈哈,直接使用了 Chrome 的分词表,分词表可以在这个地址下载:http://www.mdbg.net/chindict/chindict.php?page=cedict

  • 新词发现机制

    基于搜索关键词的新词发现机制。

    目前词库方面还有一个很大的问题,比如最新的电影无法分词,例如星际穿越 会被分词为“星际”和“穿越”,因此“被偷走的那五年,穿越火线,极速蜗牛,了不起的盖茨比,摩登年代,星际迷航,乔布斯传。”也出现在了搜索结果中。

    当然这也不算事大问题,但是霍比特人却被分词为了“霍”、“比特”、“人”了,好在搜索结果里面没有啥东西乱入。这些属于过度分词,通过增加词库内容可以解决,因此准备些一个豆瓣爬虫,将豆瓣的所有电影都加入词库,用来辅助分词。

  • 资源别名

    这会使我们的系统更加智能,更加人性化。我们在百度搜索时,经常会遇到这样的情况,当我们搜索“开核桃利器”,百度提示我们“您要找的是不是诺基亚?”。当我们搜索“世界上最好的语言”,百度提示我们“您要找的是不是PHP?”。同样,当用户搜索“星际穿越”时,应该为用户提供Interstellar的匹配结果。

    我们不用实现复杂的在线翻译,只需要继续爬取豆瓣,将电影的中英文都做成对照表就可以了。而且,为了考虑到某些宅男的特殊需求,我们还需要做一个日语的对照表。

  • 英文分词

    英文还需要分词?空格不就是词语边界吗?你有这样的译文很正常,我最初也是这么想的,因此英文只是简单的使用了 PHP 的 explode(' ', $query) 函数。

    但是我刚才(2015-02-01 21:59:35)看搜索日志时发现了一些问题,今天 xart 关键词被搜索了 169 次,而 x-art 关键词仅仅被搜索了 54 次,但是 x-art 才是它的官方名词啊(不要问我为什么知道的这么多)。因此我刚刚调整了一下代码,将 xart 和 x-art 统一定向到了 x-art。

  • BitTorrent 低版本最初使用 Python 开发,而且是开源的,因此很多类库都是直接使用的 BitTorrent 的,也有一些类库和辅助函数直接移植到了 PHP 平台上;(Petru Paler 写的 bencode 太赞了,老婆问我:你为什么跪着写代码?)

了解 P2P 原理的人都知道,BT 不需要中心服务器,因为每个节点既是客户端,同时也是服务器,因此基于 0x0d 大神的 dhtfck 写了一个 DHT 爬虫,它伪装为 DHT 网络中的一个节点,这样当其他客户端想下载某个 torrent 时,就会在 DHT 网络发起广播,当它询问到我的节点时,我就知道了:哦,原来有人要下载这个种子啊,那么在 DHT 网络中肯定有这个种子。于是我把这个种子的信息保存到 MySQL 中。

以上 DHT 的整个过程可以具体看看 DHT 协议

注意:我只是保存了 torrent 的 infohash 信息,用这个信息,可以构建一个磁力链接,但是却还没有得到种子文件,我们还得通过其它方式取得种子文件。

Python 的爬虫程序是主动出击,盲目寻找。在互联网的海量网页中寻找种子和磁力链接。而 DHT 爬虫则变成了被动等待,当别人来询问时,就把它的询问结果记录下来,如果一个种子被询问了很多次,则说明这个种子是一个热门种子,这是 Python 爬虫无法做到的。

由于 BitTorrent 开源版本使用的 Python,因此我的 DHT 爬虫也使用了 Python。作为一个服务器,肯定要使用 twisted 框架,熟悉 nodejs 的同学一定知道这个框架的特性:异步网络 IO,虽然大部分开发者都是通过 nodejs 才了解了异步 IO,但是 twisted 要比 nodejs 早了 N 年。

当前运行的爬虫是一个非常简陋的版本,是我一周前写的一个多线程的基于 Socket 的 DHT 服务器。截至到现在(2015年2月1日),已经运行了 6 天了,总共收集到了 45,234,859 个磁力链接。

More Repositories

1

free-programming-books-zh_CN

📚 免费的计算机编程类中文书籍,欢迎投稿
104,779
star
2

awesome-wechat-weapp

微信小程序开发资源汇总 💯
41,985
star
3

Google-IPs

🇺🇸 Google 全球 IP 地址库
3,428
star
4

ReplaceGoogleCDN

♋ 一个 Chrome 插件:将 Google CDN 替换为国内的。
JavaScript
3,185
star
5

the-front-end-knowledge-you-may-not-know

😇 你可能不知道的前端知识点
2,277
star
6

Programming-Alpha-To-Omega

从零开始学编程 系列汇总(从α到Ω)
JavaScript
2,063
star
7

Flarum

Flarum - 优雅自由的 PHP 轻社区
JavaScript
1,578
star
8

awesome-awesomeness-zh_CN

一份关于“资料汇总”的汇总。
JavaScript
1,382
star
9

proxy-www

学会 Proxy 就可以为所欲为吗?对,学会 Proxy 就可以为所欲为!
JavaScript
883
star
10

openai-proxy

OpenAI/ChatGPT 免翻墙代理
TypeScript
873
star
11

ChromeSnifferPlus

🔍 Sniff web framework and javascript libraries run on browsing website.
JavaScript
834
star
12

react-router-v4-CN

React Router V4 中文文档
JavaScript
803
star
13

layoutit

基于 bootstrap 实现可视化布局的 layoutit.com 离线中文版
HTML
763
star
14

ali-words

互联网黑话词汇表,包含“赋能、抓手、闭环、沉淀、打通”等阿里味儿词汇
TypeScript
698
star
15

justjavac.github.com

🇨🇳个人博客,喜欢的话请点 star,想订阅点 watch ✨
HTML
600
star
16

dvm

🦕 Deno Version Manager - Easy way to manage multiple active deno versions.
Rust
588
star
17

1s

天若有情天亦老,我为网站加一秒
552
star
18

auto-green

自动保持 GitHub 提交状态常绿 a commit every day, keep your girlfriend far away.
494
star
19

weibo-trending-hot-search

微博热搜榜,记录从 2020-11-24 日开始的微博热门搜索。每小时抓取一次数据,按天归档。
TypeScript
423
star
20

v8.js.cn

V8 官方网站中文翻译
JavaScript
382
star
21

programming-mindmap

编程相关的思维导图
JavaScript
285
star
22

12-javascript-quirks

javascript 的 12 个怪癖(quirks)
264
star
23

chatgpt

ChatGPT 从入门到精通
JavaScript
262
star
24

PHP-Best-Practices-zh_CN

PHP Best Practices(中译版)
HTML
258
star
25

vscode-deno

[Deprecated] Move to https://github.com/denoland/vscode_deno
TypeScript
246
star
26

esnext

介绍最新的 ECMAScript/JavaScript 规范,以及 TC39 的提案进度
CSS
243
star
27

certbot-dns-aliyun

阿里云 DNS 的 certbot 插件,用来解决阿里云 DNS 不能自动为通配符证书续期的问题
Dockerfile
236
star
28

flarum-ext-simplified-chinese

Flarum Simplified Chinese Language / 简体中文语言包
JavaScript
217
star
29

typescript-deno-plugin

Deno language service plugin for TypeScript
TypeScript
199
star
30

github-actions-youtube-dl

使用 GitHub Actions 下载 YouTube 视频
190
star
31

what-happens-when-zh_CN

当XXX时,到底发生了什么
175
star
32

deno_vultr

按需启动 Vultr 实例,实现每个月只需要 2 美元的 VPS
TypeScript
170
star
33

unicode-encoding-error-table

Unicode 中文乱码速查表
169
star
34

deno_handbook

Deno 入门指南,入门教程,初学者教程
TypeScript
146
star
35

zhihu-trending-top-search

知乎热搜榜,记录从 2020-11-24 日开始的知乎热搜榜单。每小时抓取一次数据,按天归档。
TypeScript
129
star
36

versailles

凡尔赛语录
TypeScript
121
star
37

zhihu-trending-hot-questions

知乎热门话题,记录从 2020-11-24 日开始的知乎热门话题。每小时抓取一次数据,按天归档。
TypeScript
113
star
38

awesome-firebase

Awesome Firebase: Firebase 相关文章索引
109
star
39

chrome_password.js

Get username & password from Chrome.
JavaScript
78
star
40

qr-ascii

A small library to generate QR codes with ascii
72
star
41

vue-cli-renderer

TypeScript
65
star
42

writing-your-own-deep-neural-network

一步步开发自己的深度学习的神经网络 Deep Neural Network。
TypeScript
64
star
43

logo-trademark-licenses

Logo Trademark Licenses
64
star
44

please-use-yarn

强制在项目中使用 yarn 作为包管理器
JavaScript
61
star
45

deno_serverless_aliyun

为阿里云 serverless 平台添加 Deno Runtime
TypeScript
60
star
46

flarum-doc

Flarum 文档
60
star
47

marketing-generator

营销号生成工具,有内味儿了
HTML
60
star
48

chatdoc

Document + ChatGPT = ♥️
TypeScript
59
star
49

android-app-build-with

流行 App 使用了哪些开源项目?
56
star
50

yyds

收集一些主流和非主流的缩写语,yyds、u1s1,爷青回
55
star
51

awesome-node-utils

some useful npm packages for nodejs itself
52
star
52

recoil

Recoil 是适用于 React 最新特性的实验性的状态管理库
JavaScript
50
star
53

deno_starter

deno starter for creating a module
TypeScript
49
star
54

v8-javascript-memory

V8 JavaScript 内存占用分析
HTML
49
star
55

chrome-t-rex-game

Chrome T-Rex Game | Chrome 离线小恐龙(暴龙)游戏
JavaScript
47
star
56

deno-semver

The semver parser for Deno (a fork of node-semver using TypeScript)
TypeScript
47
star
57

Flarum-zh-CN

中文语言包 ----->
JavaScript
47
star
58

v8-source-read

V8 探秘
JavaScript
45
star
59

chrome_password.rs

Get username & password from Chrome.
Rust
42
star
60

node-auto-green

自动保持 GitHub 提交状态常绿 a commit every day, keep your girlfriend far away.
JavaScript
41
star
61

baby-time

🎁 gift for justjavac's baby
HTML
40
star
62

esowiki

上古卷轴OL(Elder Scrolls Online)游戏攻略,包括职业、装备、技能、副本、任务、地图、资料片等内容
Astro
38
star
63

writing-your-own-reactive-signal-library

Writing Your Own Reactive Signal Library
TypeScript
31
star
64

stackoverflow-cn

翻译 stackoverflow.com 上的热门问题
30
star
65

no-you-must-beian

TypeScript
29
star
66

react-pits

React 中的坑
HTML
29
star
67

es2018puzzlers

ES2018(ES9) 测试题
HTML
29
star
68

deno_deploy_cors_proxy

Deno Deploy CORS Proxy
TypeScript
26
star
69

buy-me-a-coffee

☕️ Buy me a coffee
26
star
70

antd-form-devtools

🔧 DevTools for Ant Design Forms
TypeScript
26
star
71

mithril.js-doc

Mithril 文档
23
star
72

deno_cheerio

How to use cheerio in Deno
TypeScript
23
star
73

deno_deploy_versailles

凡尔赛语录(部署在 Deno Deploy)
TypeScript
22
star
74

screeps-web-ui

使用 React 实现的自定义 Screeps Web UI
JavaScript
22
star
75

steal_password_from_browser

🏴‍☠️ steal saved browser passwords 🔐
TypeScript
22
star
76

deno-is

Detect the running environment and context of the current script
TypeScript
21
star
77

deno_feishu_bot_echo

使用 Deno 开发的飞书机器人
TypeScript
21
star
78

deno_serverless_aliyun_minimal

为阿里云 serverless 平台添加 Deno Runtime,精简版,从源码编译 deno_core with V8 snapshot
Rust
20
star
79

deno_trex_game

Chrome T-Rex Game
TypeScript
20
star
80

deno_win32

Wraps some of the most common Win32 API calls using FFI to make them accessible to Deno.
TypeScript
20
star
81

screeps-typescript-starter-zh_CN

快速使用 Typescript 开发属于自己的 Screeps AI 程序
TypeScript
19
star
82

rust_tinyget

Tiny HTTP client for GET
Rust
19
star
83

node2deno

Deno for Node.js developers
18
star
84

github_raw_proxy

proxy to raw.githubusercontent.com
TypeScript
18
star
85

dark-light-mode

🌒 toggles dark mode... Really? Try it
JavaScript
17
star
86

flarum-ext-mediaembed

自动将第三方网站的媒体(视频、音频等)嵌入到 Flarum 中。
PHP
17
star
87

chart_as_a_service

Chart as a Service
TypeScript
17
star
88

PHPonPails

PHP on Pails
17
star
89

eso_en_zh_vstab

上古卷轴 OL 中英文对照表(英文 vs 官中 vs 微攻略)
TypeScript
16
star
90

deno_deploy_examples

Deno Serverless 部署服务
TypeScript
16
star
91

rust_v8_and_quickjs

Compare the size of v8 and quickjs
Rust
16
star
92

zhihu-trending-hot-video

知乎热门视频,记录从 2020-11-24 日开始的知乎热门视频。每小时抓取一次数据,按天归档。
TypeScript
16
star
93

json-perf-loader

A loader for webpack to load JSON with performance advice
JavaScript
16
star
94

justjavac

justjavac's modules
TypeScript
15
star
95

deno_dirs

Returns the user and platform specific directories
TypeScript
15
star
96

deno-ci

Get environment variables exposed by CI services
TypeScript
14
star
97

deno-docs

Deno 中文文档
MDX
14
star
98

how_many_doms

Archives the number of doms in the website every day, using GitHub Actions
TypeScript
13
star
99

vscode-deno-extensionpack

Deno VS Code Extension Pack
12
star
100

auto-green-2

Java
12
star