入门python其实一个机缘,虽然现在还是入门状态,但是开始接触主要是由于看到网站上有一个喜欢的漫画,但是不喜欢在电脑上看,想要下载下来,但是一张张的保存又太麻烦了,所以开始学习了爬虫。
一个简单的批量网页资源下载,分为4个部分:
- 分析网页规律,找到资源所在的所有网页。
- 分析每个网页的源码和特点,找需要资源的URL,并转化成正则表达式。
- 编写爬虫程序,下载资源。
- 保存资源。
下面是一个简单的爬虫,我将分别针对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