我妈今天打电话说她今年带一年级音乐,但是她不会唱歌(这么坑一年级的小朋友??),所以决定给孩子们放配套教材上带的光盘,但是学校的光盘早丢了让我给她下,发我一网址还都是flash,一二年级上下册,崩溃…我说晚上吧我这会比较忙(我已经做好了一个一个点进去在firefox page info里面慢慢找的打算了).最后想想还是算了写爬虫吧,但是我担心我这水平写完大概也能点完了.
搜笔记,发现之前的scrapy笔记….我去这是啥啊,看不懂了…只能用笨办法用正则表达式找了.
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
| import re import urllib import subprocess base_url = 'http://www.pep.com.cn/yinyue/yyjs/yytbjx/2x/yyflash/201009/'
suffix_url_lst = [] for i in xrange(65, 80): suffix_url_lst.append('t20100901_8542' + str(i) + '.htm') for suffix_url in suffix_url_lst: urlhand = urllib.urlopen(base_url + suffix_url) text = urlhand.read() if re.findall("<title>(.*)</title>", text) == ['404 Not Found']: print suffix_url + " page not found!" else: songtitle = re.findall("var title = \'(.*)\'", text) songtitle = songtitle[0].decode('gbk') print "song title is " + songtitle swftitle = re.findall("\./(.*?.swf)", text)
if swftitle == []: print "swf not found!" continue swftitle = swftitle[0] print swftitle swfurl = base_url + swftitle print swfurl child = subprocess.Popen(['wget', swfurl, '-O', songtitle + '.swf'])
|
这破网站提供的破资源一会是mp3一会是swf的,有的点进去还什么都没有.
下载网页再用正则表达式找绝对是最笨的爬虫,不知道我妈看到我用这么蠢的方法会不会哭出来.