MATCH (n)-[r]->(m)
RETURN n, r, m
ORDER BY rand()
LIMIT 300;
随机获取300个HAS_VERSION关系
MATCH (package)-[r:HAS_VERSION]->(version)
WITH package, r, version, rand() AS random
ORDER BY random
LIMIT 300
RETURN package, r, version;
随机获取300个PACKAGE_DEPENDS_ON关系
MATCH (package_a)-[r:PACKAGE_DEPENDS_ON]->(package_b)
WITH package_a, r, package_b, rand() AS random
ORDER BY random
LIMIT 300
RETURN package_a, r, package_b;
随机获取300个VERSION_DEPENDS_ON关系
MATCH (version_a)-[r:VERSION_DEPENDS_ON]->(package_b)
WITH version_a, r, package_b, rand() AS random
ORDER BY random
LIMIT 300
RETURN version_a, r, package_b;
BUAA_OpenSource_Rust2
如何运行
使用PyCharm打开
BUAA_OpenSource_Rust2
目录修改
cargo/system.py
的init()函数,配置爬取队列初始化的方式以下例子表示,将向优先级最高的0号爬取队列放入爬取任务”package_list”:爬取第1页,第1页包含1个Package,排序方式为rank,爬取的API链接为
https://libraries.io/api/search?platforms=Cargo&sort=rank&page=1&per_page=1&api_key=<随机密钥>
如果爬取完成,可以将爬取完成的初始化任务注释掉,加入新的任务,如以下例子中,爬取第1页已经完成,继续按每页1个Package爬取到第10个Package,再按照每页10个Package爬取第2页即爬取到第20个Package。
在PyCharm中打开
main.py
,运行当前文件,开始爬取程序可以安全处理中断,如需中断,可放心使用Ctrl+C(SIGINT)或kill命令(SIGTERM)中断程序,中断后下次运行将从当前进度继续。
每次开始运行将判断爬取队列是否为空,如果是则会等待5秒后执行init()初始化再开始爬取,否则不会执行init()而会立即继上次进度继续爬取
cargo/system.py
的init()函数,配置下次爬取队列初始化的方式,可将已完成的爬取注释掉,加入新的爬取任务。如何检验数据库状态
随机获取300个关系
随机获取300个HAS_VERSION关系
随机获取300个PACKAGE_DEPENDS_ON关系
随机获取300个VERSION_DEPENDS_ON关系