文章目录

今天晚上闲来无事,想找部动漫看看,上次下载的《魔法禁书目录2》的720P版本已经看完了,手头上暂时没什么想看的存货,以前遗留下来的到是有一些,但是放太久了,现在没什么心情看。断的时间长了,就没当初那么好的兴致了。

我看动漫作品喜欢看完结的,没完结的要等死。前段时间收藏的一个叫红旅动漫 http://www.hltm.cc 的网站蛮不错的。里面经常可以下载到720P的片子。当然下载源还是要借助于像115之类的网盘。但是网站里面的完结动漫是没有按下载量排序的,这样就不容易找热门的下载。于是就萌生了采集网站信息自己排序的想法。以前下漫画的时候也没少干这事。

简易的代码如下:

GetList.py : 采集网站信息通过cPickle存入文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#coding:utf-8
import urllib2,cPickle,re

pages=[]#存放下载的页面地址
for i in range(132):
if i==0:
pages.append('http://www.hltm.cc/list/18.html')
else:
pages.append('http://www.hltm.cc/list/18_%s.html'%(i+1))

def GetInfo(content):
'''
根据信息片段提取想要关片名和下载量信息
'''
rs=[]
rs.append(re.findall('title\=\"(.*?)\"',content)[0])
rs.append(re.findall('\xcf\xc2\xd4\xd8\xb4\xce\xca\xfd\xa3\xba(\d*)\<\/p\>',content)[0])
return rs

def GetWorks(content):
'''
取得当前面的信息列表
'''
tmp=content
rs = []
#通过循环把网页源代码进行分割
while tmp.find('<div class="listInfo">')!=-1:
start=tmp.find('<div class="listInfo">')
tmp=tmp[start:]#截取后半段
stop=tmp.find('</div>')
rs.append(tmp[:stop])
tmp = tmp[stop:]
rs1=[]
#生成关键信息列表
for i in rs:
rs1.append(GetInfo(i))
return rs1

works = []#作品列表
error = []#错误页面列表

for i in pages:
try:
print u'正在获取%s'%(i)
tmp = GetWorks(urllib2.urlopen(i).read())
for j in tmp:
works.append([j[0],int(j[1])])
print len(works)
except :
error.append(i)

f=open('works','w+')
cPickle.dump(works,f)
f.close()

f=open('error','w+')
cPickle.dump(error,f)
f.close()

sort.py : 排序并输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#coding:utf-8
import cPickle,sys

works = cPickle.load(open('works','rb'))

def mcmp(x,y):
if x[1]>y[1]:
return 1
elif x[1]==y[1]:
return 0
else:
return -1

works.sort(mcmp,reverse=True)

for i in range(len(works)):
sys.stdout.write((u'作品名:%s 下载次数:%s\r\n'%(works[i][0].decode('gbk'),works[i][1])).encode('gbk'))

本来想把error的处理给写了,后来发现网络比较给力没有出错直接采集完了,所以就没写这东西。

tip

输出结果到文本:

python sort.py>list.txt

python写这种东西确实很方便,等有空了把以往写过的代码都整理一下,以后写个比较通用的采集模块。

文章目录