Python网页简单小爬虫

#!usr/bin/env python
# encoding: utf-8

'''爬一个简单的网页,并下载网页中的mp3文件
    
    存在的问题是:
    1. 下载mp3文件模块未实现,所以先以wget小工具顶上
    2. 在问题1的情况下,bat文件是UFT-8编码,处理非英文字符时显示有问题,暂时得手动转bat编码
'''
__author__ = 'honghe'

import re
import requests
from os.path import dirname, abspath

PREFIX = dirname(abspath(__file__))

def extract(begin, end, data):
    '''抽取行内begin与end之间的内容

    '''
    result = []
    r = re.compile(r'.+%s(.+?)%s.+' % (begin, end))
    li = data.split('\r\n')
    for l in li:
        m = r.match(l)
        if m:
            print m.group(1)
            result.append(m.group(1))
    return result


def fetch():
    '''获取网页中的mp3地址与名字

    '''

#    保存成简单bat文件
    with open("%s/down.bat" % PREFIX, 'w') as down:
#        只选几个页面做测试
        for i in xrange(394, 396):
            url = 'http://www.luoo.net/radio/radio%s/mp3.xml' % i
            r = requests.get(url)
            if r.status_code == 200:
                for path, name in zip(
                    extract('path="', '"', r.content),
                    extract('title="', '"', r.content)
                ):
                    down.write('wget %s -O "%s/%s.mp3"\n' % (path, PREFIX, name))


if __name__ == '__main__':
    fetch()

你可能感兴趣的:(python,爬虫)