初学 Node.js,写了一个 18 禁小爬虫 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
raawaa
V2EX    Node.js

初学 Node.js,写了一个 18 禁小爬虫

  raawaa 2015-10-31 14:19:31 +08:00 28007 次点击
这是一个创建于 3681 天前的主题,其中的信息可能已经有所发展或是发生改变。

项目地址: https://coding.net/u/raawaa/p/jav-scrapy/git

jav-scrapy

jav-scrapy ,一个爬取 AV 磁力链接的小爬虫。

anim.gif

Prequisites

  • Node.js 4.2.1+

Installation

$ git clone https://git.coding.net/raawaa/jav-scrapy.git $ cd jav-scrapy $ npm install # 安装 npm 包依赖 $ npm link # 使 jav-scrapy 全局可执行 

Usage

Usage: jav [options] Options: -h, --help output usage information -V, --version output the version number -p, --parallel <num> 设置抓取并发连接数,默认值: 2 -t, --timeout <num> 自定义连接超时时间(毫秒)。默认值: 10000 -l, --limit <num> 设置抓取影片的数量上限, 0 为抓取全部影片。默认值: 0 -o, --output <path> 设置磁链抓取结果的保存位置,默认为当前用户的主目录下的 magnets.txt 文件 

Todo

  • 让 jav-scrapy 的操作方式更像原生命令行程序
  • 只抓取某一类型的影片磁链
  • 加影片磁链保存至本地数据库
  • 增量抓取
第 1 条附言    2015-11-01 15:30:37 +08:00

更新了一下,增加了搜索功能,比如:

$ jav -s ipz # 只抓取以 ipz 开头的番号 $ jav -s ipz-634 # 只抓取番号 ipz-634 
第 2 条附言    2015-11-01 15:32:31 +08:00
在 github 上也推了一份:
https://github.com/raawaa/jav-scrapy
第 3 条附言    2015-11-01 21:16:04 +08:00

又增加了「下载影片封面」的功能,到此为止觉得已经够自己用的了,短期不会再更新了,放几个用例吧:

# 下载影片封面到~/porn_covers/目录下,图片文件名为番号,并行下载数为 10 $ jav -c ~/porn_covers/ -p 10 # 抓取 ipz 开头的所有番号的磁链,并保存在~/magnets.txt 中,并行抓取数 20 $ jav -s ipz -p 20 -o ~/magnets.txt # 抓取番号 ipz-634 这部影片的磁链 $ jav -s ipz-634 -o ~/magnet.txt # 抓取「连裤袜」主题的所有影片磁链...并行数 10 $ jav -b http://www.javbus.in/genre/28 -p 10 -o ~/magnets.txt 
101 条回复    2015-12-27 18:37:37 +08:00
1  2  
iShao
    1
iShao  
   2015-10-31 14:21:49 +08:00 via Android
从来只看自己喜欢的演员的作品…已经收藏全了
raawaa
    2
raawaa  
OP
   2015-10-31 14:25:04 +08:00   1
@iShao 最近孩子刚出身,没时间逛黄网,无奈只能自己写了个这个。
cxbig
    3
cxbig  
   2015-10-31 14:26:02 +08:00
恭喜 LZ 找到学习的原动力
raawaa
    4
raawaa  
OP
   2015-10-31 14:26:49 +08:00
@cxbig 我这样不会被抓起来吧
cxbig
    5
cxbig  
   2015-10-31 14:29:03 +08:00
@raawaa 1024 到处都是,不差你一个。
leavic
    6
leavic  
   2015-10-31 14:30:52 +08:00
其实我前两天写了个 scrapy 爬虫,把 javbus 上的所有 AV 信息都抓完了,一共 8 万多部。
scream7
    7
scream7  
PRO
   2015-10-31 14:31:35 +08:00
看不懂的样子
raawaa
    8
raawaa  
OP
   2015-10-31 14:32:24 +08:00
@leavic 昨天 javbus 网站好像改版了,影片少了很多,我昨天晚上抓了一下全站,只有 3000 多部了……
Chappako
    9
Chappako  
   2015-10-31 14:39:25 +08:00
不知道这样或者分享番号,算不算违法
Andy1999
    10
Andy1999  
   2015-10-31 14:43:54 +08:00 via iPhone
高端技术传播淫秽资料罪加一等
leavic
    11
leavic  
   2015-10-31 14:48:04 +08:00
@raawaa 你从 page/1 这样开始抓的话,最终只能抓到不到 50 页,这是 wordpress 分页插件造成的,我是从演员表那里开始抓的,女优数都有 3 万多。
exoticknight
    12
exoticknight  
   2015-10-31 14:48:47 +08:00
代码写的不错……下载来
学代码
学代码
学代码
Hipponensis
    13
Hipponensis  
   2015-10-31 14:51:24 +08:00
参考一下,我去写个 Scrapy 抓。
DennyDai
    14
DennyDai  
   2015-10-31 14:52:46 +08:00   1
嗯我只看第十九行代码就够了
raawaa
    15
raawaa  
OP
   2015-10-31 14:55:42 +08:00
@leavic 我昨晚抓到第 103 页的时候出现了 404 错误。用浏览器浏览,末页也是到 102 页。在昨天以前我浏览这个站可不是这样的。
leavic
    16
leavic  
   2015-10-31 15:07:07 +08:00   1
@raawaa 那他现在还放大了页面数了,我最开始抓的时候只有 48 页,抓完后我就觉得数据不对,调到 48 也一看是两个月前的数据,这网站都这么久了。
其实我觉得 javbus 也是抓的 dmm ,然后让网友自己提交磁链形成的,否则我抓取来的 8 万多条数据,这要人工编辑得花多大功夫, 3 万多个女优的名字能全知道的就不可能是人类。
agate
    17
agate  
   2015-10-31 15:09:59 +08:00
@leavic 要不要这么饥渴啊 lol 人家爬虫很累的好不好
raawaa
    18
raawaa  
OP
   2015-10-31 15:10:11 +08:00
@leavic 多谢,我又有继续改写到动力了……
xwartz
    19
xwartz  
   2015-10-31 15:12:17 +08:00   1
Kuro
    20
Kuro  
   2015-10-31 15:14:09 +08:00
能否抓取有 HD 种子的片子,前几天想实现发现因为 javmoo 反爬虫就搁置了。
raawaa
    21
raawaa  
OP
   2015-10-31 15:15:58 +08:00
@Kuro 目前不可以,不过应该可以实现的,就是有点工作量。
Kuro
    22
Kuro  
   2015-10-31 15:20:19 +08:00
发现 javbus 这个网站已经有高清分类了,不错~
ipconfiger
    23
ipconfiger  
   2015-10-31 15:22:10 +08:00
1024
qile1
    24
qile1  
   2015-10-31 15:22:53 +08:00 via Android
一直想弄一个可仪抓取电影网站图片及介绍的爬虫,把家里的电影介绍都更新,以后没网本地观看,可惜不会
raawaa
    25
raawaa  
OP
   2015-10-31 15:27:09 +08:00
@xwartz 用上了,太棒了
lk920724
    26
lk920724  
   2015-10-31 15:30:05 +08:00
electron-v0.33.9-darwin-x64.zip 这个貌似下载的很慢额
xwartz
    27
xwartz  
   2015-10-31 15:30:10 +08:00
@raawaa 其实我想说的是图片资源不错吧...
JiaFeiX
    28
JiaFeiX  
   2015-10-31 15:59:41 +08:00 via iPhone
请问 gif 图用的什么软件生成的?
zzy8200
    29
zzy8200  
   2015-10-31 16:18:50 +08:00 via iPhone
然而服务器根本挂不了 BT ……
GPU
    30
GPU  
   2015-10-31 16:46:14 +08:00
楼主想撸出血啊?
ChiangDi
    31
ChiangDi  
   2015-10-31 16:47:57 +08:00
楼主都是有孩子的人了啊... 直接找老婆不就好了......
kn007
    32
kn007  
   2015-10-31 17:03:44 +08:00
高调收藏。。。
kn007
    33
kn007  
   2015-10-31 17:05:52 +08:00
话说源码放 github 估计会有很多星星。。。
fyyz
    34
fyyz  
   2015-10-31 17:13:28 +08:00
丝进入高科技领域依然是丝(逃
raawaa
    35
raawaa  
OP
   2015-10-31 17:13:32 +08:00   1
@JiaFeiX 用的 silentcast

$ sudo add-apt-repository ppa:sethj/silentcast
$ sudo apt-get update
$ sudo apt-get install silentcast
raawaa
    36
raawaa  
OP
   2015-10-31 17:14:46 +08:00
bingu
    37
bingu  
   2015-10-31 17:21:02 +08:00 via iPad
这贴干货真多。
raawaa
    38
raawaa  
OP
   2015-10-31 17:23:21 +08:00
@lk920724 试试淘宝的镜像吧
npm.taobao.org
ready2race
    39
ready2race  
   2015-10-31 17:26:23 +08:00
1943 年,美国心理学家亚伯拉罕马斯洛在《人类激励理论》论文中提出---生理需要是推动人们行动最首要的动力
kn007
    40
kn007  
   2015-10-31 17:29:39 +08:00
@raawaa ~已星
hantsy
    41
hantsy  
   2015-10-31 18:08:57 +08:00
好几年没看 AV 了,,,这么多怎么看得完。也不推荐一下哪个好一点。
iloveayu
    42
iloveayu  
   2015-10-31 18:09:36 +08:00 via iPad
丧心病狂。。。
LWXYFER
    43
LWXYFER  
   2015-10-31 19:17:32 +08:00
学习学习,我要自己抓。
sxd
    44
sxd  
   2015-10-31 19:28:09 +08:00
我只能说 域名太
VmuTargh
    45
VmuTargh  
   2015-10-31 19:48:12 +08:00 via Android
噫,好污
kn007
    46
kn007  
   2015-10-31 19:56:32 +08:00
@sxd 抓到 ACN 一只
gqfBzoLVY3Wl4Tng
    47
gqfBzoLVY3Wl4Tng  
   2015-10-31 20:01:10 +08:00
moe3000
    48
moe3000  
   2015-10-31 20:25:51 +08:00
污得不行啊
yuzhouwww
    49
yuzhouwww  
   2015-10-31 20:46:47 +08:00
get
LancerComet
    50
LancerComet  
   2015-10-31 20:51:50 +08:00
这么污的东西必须兹词
raawaa
    51
raawaa  
OP
   2015-10-31 21:00:22 +08:00 via iPad
@xwartz 艺术性太高撸点不高
jerryhethatday
    52
jerryhethatday  
   2015-10-31 21:04:37 +08:00
楼主制作这个 gif 的工具叫啥?看起来挺高端的
coldfog
    53
coldfog  
   2015-10-31 21:08:10 +08:00
为什么我点进来整个页面都黑了?你做了什么?
raawaa
    54
raawaa  
OP
   2015-10-31 21:16:39 +08:00
@jerryhethatday 叫 silentcast
raawaa
    55
raawaa  
OP
   2015-10-31 21:18:35 +08:00
@coldfog 好像 Node.js 板块下的帖子都这样
linux40
    56
linux40  
   2015-10-31 22:00:26 +08:00
我又多了一个网站。。。
aszxqw
    57
aszxqw  
   2015-10-31 22:05:56 +08:00
npm install 好慢好慢。
raawaa
    58
raawaa  
OP
   2015-10-31 22:12:47 +08:00
@aszxqw 可以用淘宝的镜像: npm.taobao.org
49
    59
49  
   2015-10-31 22:17:56 +08:00 via Android
收藏比回复还多…
你们啊!绅士
sxd
    60
sxd  
   2015-10-31 23:23:56 +08:00
@kn007 还记得我啊 呵呵
aszxqw
    61
aszxqw  
   2015-10-31 23:30:37 +08:00
@raawaa 感觉用了淘宝的景象也没加快。。。。
cszchen
    62
cszchen  
   2015-10-31 23:32:30 +08:00
我正在想干这个事呢,然后做一个客户端
kn007
    63
kn007  
   2015-10-31 23:33:04 +08:00
@sxd 能不记得么,老伙计。
sxd
    64
sxd  
   2015-10-31 23:40:22 +08:00
@raawaa during 和 whilst 有什么区别呢 我是说实际应用上
acrisliu
    65
acrisliu  
   2015-10-31 23:44:05 +08:00 via Android
楼主有没有 nodejs 入门教程推荐?
pabno
    66
pabno  
   2015-10-31 23:44:05 +08:00
baseUrl 这个变量定义的很有深度,值得好好研究
raawaa
    67
raawaa  
OP
   2015-11-01 00:41:45 +08:00
@aszxqw 不会吧,我用丈母娘家的破长城宽带都感觉速度不错
raawaa
    68
raawaa  
OP
   2015-11-01 00:44:25 +08:00
@sxd whilst 的测试函数必须是同步函数啊,向我这个需要用到异步 http 请求来判断页面是否存在的情况,的就没法用 whilst 了。
raawaa
    69
raawaa  
OP
   2015-11-01 00:56:01 +08:00   1
@acrisliu 其实我 node.js 没怎么深入学,什么流啊子进程啊之类的都不会。我现在还处在 Javascript 打基础的阶段。

Javascript 的话我强烈推荐 Kyle Simpson 写的《 You Don't Know JS 》系列丛书,或者看此人在 pluralsight 上开的「 Advanced Javascript 」视频课程。这些在网上都有资源下载。
acrisliu
    70
acrisliu  
   2015-11-01 09:52:24 +08:00 via Android
@raawaa 嗯嗯 好的 谢谢推荐
crayygy
    71
crayygy  
   2015-11-01 11:17:38 +08:00
@raawaa 孩子都出世了还......
wbsdty331
    72
wbsdty331  
   2015-11-01 12:42:29 +08:00
污,不过我喜欢 23333
coldfog
    73
coldfog  
   2015-11-01 12:57:35 +08:00
@raawaa 刚确认了一下,还真是……
XianZaiZhuCe
    74
XianZaiZhuCe  
   2015-11-01 14:07:13 +08:00
认真的,小心被查,不开玩笑
sxd
    75
sxd  
   2015-11-01 19:53:48 +08:00
@raawaa 对哦 我一开始误以为 whilst 可以延迟 return 呢....
coolicer
    76
coolicer  
   2015-11-02 09:55:11 +08:00
哈哈,不错。
godjarl
    77
godjarl  
   2015-11-02 10:25:06 +08:00
这是我学习 node 的理由嘛
4912941
    78
4912941  
   2015-11-02 11:19:31 +08:00
<img src=" "/>

为什么会报错呢
raawaa
    79
raawaa  
OP
   2015-11-02 11:37:43 +08:00
@4912941 window 下好像是会有点问题。要注意 2 点:
- 请跳出 jav-scrapy 这个目录再运行 jav 命令,不要在 jav-scrapy 目录里直接运行 jav 命令,如果实在要在 jav-scrapy 目录里运行的话,运行 node jav.js ,后跟选项;
- windows 里不要用'~'之类的 Linux 下特有的路径符号。
4912941
    80
4912941  
   2015-11-02 11:54:06 +08:00
@raawaa 可以用了
0xfan
    81
0xfan  
   2015-11-02 12:18:57 +08:00
80 回复, 178 人收藏,你们啊
hi54yt
    82
hi54yt  
   2015-11-02 13:27:31 +08:00
fengdra
    83
fengdra  
   2015-11-02 22:01:12 +08:00
@leavic 求打包发送
kaiwei
    84
kaiwei  
   2015-11-05 11:39:19 +08:00
弱问磁力链接是种子吗 还是直接就能下载电影了?
raawaa
    85
raawaa  
OP
   2015-11-05 14:42:09 +08:00
@kaiwei ,我希望你这样一直纯洁下去,所以不打算告诉你……:)
sinux
    86
sinux  
   2015-11-06 16:51:21 +08:00
想问一下,那个总进度的不断前进的命令条是怎么做的?
raawaa
    87
raawaa  
OP
   2015-11-07 12:19:57 +08:00
@sinux 有现成的包可以用的。
http://npm.taobao.org/package/progress
sinux
    88
sinux  
   2015-11-07 13:29:00 +08:00
@raawaa 非常感谢
flw01
    89
flw01  
   2015-11-25 17:24:51 +08:00
我们现在在招聘 node.js,坐标广州,感兴趣的私聊我哈, http://www.lagou.com/jobs/1284459.html
greatghoul
    90
greatghoul  
   2015-12-01 20:02:36 +08:00
好样的。
qingwalashi
    91
qingwalashi  
   2015-12-04 23:13:42 +08:00
我用 python 尝试写了爬虫,有两个链接,没有任何返回值。问题,一个是网站的图片貌似写了判断,代码下载图片会显示一个拒绝的网站。还有一个是,你如何获得磁力链接的地址的?我直接打开 XHR 的链接,没有任何返回值。
raawaa
    92
raawaa  
OP
   2015-12-05 13:00:12 +08:00
@qingwalashi 图片就是直接获取图片资源的 url 然后下载呗;磁链就是直接从 html 文本里提取呗。
qingwalashi
    93
qingwalashi  
   2015-12-05 21:14:40 +08:00
@raawaa 磁力链接获 html 解析不到撒
raawaa
    94
raawaa  
OP
   2015-12-06 20:21:09 +08:00
@qingwalashi 你说的是「 javbus 」这个站么?
pangtianyu
    95
pangtianyu  
   2015-12-13 02:42:23 +08:00
其实这个好像算是传播盗版……
0rangeT1ger
    96
0rangeT1ger  
   2015-12-15 19:03:09 +08:00
对于我等来说, 第 16 行代码最为重要.
halbert
    97
halbert  
   2015-12-18 15:04:32 +08:00 via Android
@ready2race 一百多年前 弗洛伊德就说过 “力比多”是人类一切活动的基础…
huage
    98
huage  
   2015-12-22 15:30:58 +08:00
学以致用啊,很好!
eraise
    99
eraise  
   2015-12-22 19:40:44 +08:00
一直不知道如果不工作,代码还能干吗,现在知道了。。
raawaa
    100
raawaa  
OP
   2015-12-25 11:20:14 +08:00
@eraise 因为我本职工作不是程序员,所以写的东西都是业余用来改善生活的。
1  2  
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     990 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 86ms UTC 18:44 PVG 02:44 LAX 10:44 JFK 13:44
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86