爬蟲到百度貼吧,爬取自己的小說

最近在微信裏看了一個小說叫《陰陽代理人》的,看到一半,發現斷了,作者說把後面的部分放到了百度貼吧,去了貼吧發現,文章看起來比較費勁,亂糟糟的,所以爲了我的小說,弄個了爬蟲,去給我弄下來。

#!/user/bin/env python
# -*- coding:utf-8 -*-
import urllib2
import urllib
import re

#小說章節類
class ZHANGJIE:
    #初始化傳入地址
    def __init__(self,zjUrl,Num):
        self.zjUrl = zjUrl    
        self.Num = Num    
    
    #傳入頁碼,獲得網頁源代碼,只看精品
    def getPage(self):
        url = self.zjUrl + str(self.Num)
        request = urllib2.Request(url)
        response = urllib2.urlopen(request)
        return response.read()

    #獲取每章鏈接資源
    def getNum(self):
        webcon = self.getPage()
        Num = re.findall('<a href="/p/(\d+)"',webcon)
        global Num_r
        Num_r = Num[::-1]
        return Num_r

#每題內容類
class NEIRONG:
    #初始化,傳入地址
    def __init__(self,nrUrl,Num):
        self.nrUrl = nrUrl
        self.Num = Num

    #傳入資源頁碼,獲得網頁源代碼,只看樓主
    def getPage(self):
        url = self.nrUrl + str(self.Num) + '?see_lz=1'
        request = urllib2.Request(url)
        response = urllib2.urlopen(request)
        return response.read()
        
    #獲取小說章節和標題
    def getTitle(self):
        webcon = self.getPage()
        title = re.search('style="width: 450px">(.*)</h1>',webcon).group(1)
        return title

    #獲得小說內容並打印換行
    def getCon(self):
        webcon = self.getPage()
        try:
            con = re.search('支持蘭大,一定要記得投票哦!推薦票!(.*)(</div><br>)',webcon).group(1)
            con_n = re.sub('<br>','\n',con)
            return con_n
        except AttributeError:
            return '廣告內容,已經忽略'

    #寫入文件
    def writeDate(self):
        con_t = self.getTitle()
        con_n = self.getCon()
        try:
            with open('/tmp/yydlr.txt','a') as f:
                f.write('\n')
                f.write('\n')
                f.write(con_t)
                f.write(con_n)
        except IOError:
            print '寫入異常' 

for i in range(3050,1650,-50):
    ZJ = ZHANGJIE('http://tieba.baidu.com/f/good?kw=%E9%98%B4%E9%98%B3%E4%BB%A3%E7%90%86%E4%BA%BA&ie=utf-8&cid=0&pn=',i)
    ZJ.getNum()
    for i in Num_r:
        NR = NEIRONG('http://tieba.baidu.com/p/',i)
        NR.writeDate()
print '小說已經準備好啦'


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章