raawaa
V2EX  ›  Node.js

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

  raawaa · Oct 31, 2015 · 30523 views
This topic created in 4027 days ago, the information mentioned may be changed or developed.

项目地址: 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 的操作方式更像原生命令行程序
  • 只抓取某一类型的影片磁链
  • 加影片磁链保存至本地数据库
  • 增量抓取
Supplement 1  ·  Nov 1, 2015

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

$ jav -s ipz # 只抓取以 ipz 开头的番号
$ jav -s ipz-634 # 只抓取番号 ipz-634
Supplement 2  ·  Nov 1, 2015
在 github 上也推了一份:
https://github.com/raawaa/jav-scrapy
Supplement 3  ·  Nov 1, 2015

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

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

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

javascript 的话我强烈推荐 Kyle Simpson 写的《 You Don't Know JS 》系列丛书,或者看此人在 pluralsight 上开的「 Advanced Javascript 」视频课程。这些在网上都有资源下载。
acrisliu
acrisliu
Nov 1, 2015 via Android
70
@raawaa 嗯嗯 好的 谢谢推荐☺
crayygy
crayygy
Nov 1, 2015
71
@raawaa 孩子都出世了还......
wbsdty331
wbsdty331
Nov 1, 2015
72
污,不过我喜欢 23333
coldfog
coldfog
Nov 1, 2015
73
@raawaa 刚确认了一下,还真是……
XianZaiZhuCe
XianZaiZhuCe
Nov 1, 2015
74
认真的,小心被查,不开玩笑
sxd
sxd
Nov 1, 2015
75
@raawaa 对哦 我一开始误以为 whilst 可以延迟 return 呢....
coolicer
coolicer
Nov 2, 2015
76
哈哈,不错。
godjarl
godjarl
Nov 2, 2015
77
这是我学习 node 的理由嘛
4912941
4912941
Nov 2, 2015
78
<img src=" "/>

为什么会报错呢
raawaa
raawaa
OP
Nov 2, 2015
79
@4912941 window 下好像是会有点问题。要注意 2 点:
- 请跳出 jav-scrapy 这个目录再运行 jav 命令,不要在 jav-scrapy 目录里直接运行 jav 命令,如果实在要在 jav-scrapy 目录里运行的话,运行 node jav.js ,后跟选项;
- windows 里不要用'~'之类的 Linux 下特有的路径符号。
4912941
4912941
Nov 2, 2015
80
@raawaa 可以用了
0xffan
0xffan
Nov 2, 2015
81
80 回复, 178 人收藏,你们啊
hi54yt
hi54yt
Nov 2, 2015
82
fengdra
fengdra
Nov 2, 2015
83
@leavic 求打包发送
kaiwei
kaiwei
Nov 5, 2015
84
弱问磁力链接是种子吗 还是直接就能下载电影了?
raawaa
raawaa
OP
Nov 5, 2015
85
@kaiwei ,我希望你这样一直纯洁下去,所以不打算告诉你……:)
sinux
sinux
PRO
Nov 6, 2015
86
想问一下,那个总进度的不断前进的命令条是怎么做的?
raawaa
raawaa
OP
Nov 7, 2015
87
@sinux 有现成的包可以用的。
http://npm.taobao.org/package/progress
sinux
sinux
PRO
Nov 7, 2015
88
@raawaa 非常感谢
flw01
flw01
Nov 25, 2015
89
我们现在在招聘 node.js,坐标广州,感兴趣的私聊我哈, http://www.lagou.com/jobs/1284459.html
greatghoul
greatghoul
Dec 1, 2015
90
好样的。
qingwalashi
qingwalashi
Dec 4, 2015
91
我用 python 尝试写了爬虫,有两个链接,没有任何返回值。问题,一个是网站的图片貌似写了判断,代码下载图片会显示一个拒绝的网站。还有一个是,你如何获得磁力链接的地址的?我直接打开 XHR 的链接,没有任何返回值。
raawaa
raawaa
OP
Dec 5, 2015
92
@qingwalashi 图片就是直接获取图片资源的 url 然后下载呗;磁链就是直接从 html 文本里提取呗。
qingwalashi
qingwalashi
Dec 5, 2015
93
@raawaa 磁力链接获 html 解析不到撒
raawaa
raawaa
OP
Dec 6, 2015
94
@qingwalashi 你说的是「 javbus 」这个站么?
expireddessert
expireddessert
Dec 13, 2015
95
其实这个好像算是传播盗版……
0rangeT1ger
0rangeT1ger
Dec 15, 2015
96
对于我等来说, 第 16 行代码最为重要.
halbert
halbert
Dec 18, 2015 via Android
97
@ready2race 一百多年前 弗洛伊德就说过 “力比多”是人类一切活动的基础…
huage
huage
Dec 22, 2015
98
学以致用啊,很好!
eraise
eraise
Dec 22, 2015
99
一直不知道如果不工作,代码还能干吗,现在知道了。。
raawaa
raawaa
OP
Dec 25, 2015
100
@eraise 因为我本职工作不是程序员,所以写的东西都是业余用来改善生活的。
1  2  
❮ ❯
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2524 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 138ms · UTC 11:26 · PVG 19:26 · LAX 03:26 · JFK 06:26
♥ Do have faith in what you're doing.