如何批量下载资源?简单爬虫攻略!


入门python其实一个机缘,虽然现在还是入门状态,但是开始接触主要是由于看到网站上有一个喜欢的漫画,但是不喜欢在电脑上看,想要下载下来,但是一张张的保存又太麻烦了,所以开始学习了爬虫。

一个简单的批量网页资源下载,分为4个部分:

  1. 分析网页规律,找到资源所在的所有网页。
  2. 分析每个网页的源码和特点,找需要资源的URL,并转化成正则表达式。
  3. 编写爬虫程序,下载资源。
  4. 保存资源。


下面是一个简单的爬虫,我将分别针对4个部分进行说明:

# -*- coding:utf-8 -*-
""" imports libs """
import urllib
import urllib.request
import re
import os
import time


""" spider class """
class spider :    
    
    def __init__(self):
        #初始化函数
        self.siteURL = 'http://www.tingshulou.com/down/?1306-'
    
    def getMp3Url(self,url):
        # 获取0~30的资源
        realUrl =  "http://audio.xmcdn.com"
        print("getMp3Url "+url)
        request = urllib.request.Request(url)
        request.add_header('Referer','http://www.tingshulou.com/')
        request.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.2; rv:16.0) Gecko/20100101 Firefox/16.0')
        response = urllib.request.urlopen(request)
        page = response.read().decode('gbk')
        pattern = re.compile('

首先:分析网页规律,找到资源所在的所有网页。

看 dodownload 函数的两个 for 循环,url 变量的值即为有效包含资源的网页地址,根据其规则,组合成有效的网址,如下:
http://www.tingshulou.com/down/?1306-0.html

其次:分析每个网页的源码和特点,找需要资源的URL,转换成正则表达式。

这是一个编码的过程,通过观察规律找到资源,转成正则表达式,给到程序,程序就能找真正的资源地址,见函数:getMp3Url31 和 getMp3Url

0-30 资源地址:

 https://whonee.net/how-to-download-in-batch.html