首页 > 代码库 > Python抓取小说

Python抓取小说

Python抓取小说

前言


此脚本为了在MAC上抓取小说而写,用Python几句代码就可以了。


代码


# coding=utf-8

import re
import urllib2
import chardet
import sys
from bs4 import BeautifulSoup
import codecs

class Spider():

    def __init__(self):
        self.aTag=re.compile("<a href=http://www.mamicode.com/"(http://www.44pq.com/read/[0-9]+?_[0-9]+?.html)\"[^>]*?>(.+?)")>


声明一下,实在搞不定CSDN编辑器的格式问题了,上述代码中:

self.writeFile(bookname,"\n\n".join(text))
del text[:]

这两行是在for循环里的,而不应该是与关键字for对齐的。



上面不必要的import可以删掉。以小说《地球上唯一的魔法师》为例,aTag是匹配小说目录所有章节的正则表达式,contentTag是匹配小说正文的正则表达式。

需要声明一点,此代码每抓取一章,就写入文件一次,以防内存占用过大。

self.writeFile(bookname,"\n\n".join(text))
del text[:]


如果需要,也可以抓取N章写入文件一次,只需加入一个简单的逻辑判断就OK了。占用多少内存和写多少次文件,每个人有自己不同的衡量标准。