the5fire的技术博客

关注python、vim、linux、web开发和互联网--life is short, we need python.


python爬虫,从sina上抓小说《黑客》

作者:the5fire | 标签:   | 发布:2012-02-23 10:12 p.m. | 阅读量: 6253, 6196

当找不到可供下载的资源的时候,只能自己写程序爬连载了。 以下代码仅供技术参考。

import urllib2
import sys
import re

def getOnePage(url,offset = '14'):
    realurl = "%s%s%s" %(url,offset,'.html')
    print realurl
    resp = urllib2.urlopen(realurl)
    content = resp.read()

    p = re.compile('<[^>]+>')

    #print content
    rematch = re.compile(r'(<h1.*</h1>)')
    h1 = rematch.findall(content)
    h1content = p.sub("",h1[0])  #替换匹配上面正则的字符串为“”(空),python re中的sub不是截取字符串,而是替换
    fp = open(r'hack_sina.txt','a')
    fp.write(h1content+ '\n')
    fp.flush()

    #print recontent

    cont = re.search('<div id="contTxt" class="contTxt1">(.*)</p></div>', content, re.S)
    #print m.group()
    words = cont.group()
    p = re.compile('<[^>]+>')
    contTxt = p.sub("", words)
    #print recontent1

    fp.write(contTxt+'\n')
    fp.flush()
    fp.close()

def getBook(url, startOffset, endOffset):
    while startOffset < endOffset:
        getOnePage(url,offset = str(startOffset))
        startOffset += 1

if __name__ == '__main__':
    #http://vip.book.sina.com.cn/book/chapter_175286_120214.html
    #http://vip.book.sina.com.cn/book/chapter_175286_120279.html
    url = 'http://vip.book.sina.com.cn/book/chapter_175286_1202'
    startOffset = 14
    endOffset = 79
    getBook(url, startOffset, endOffset)

----EOF-----

扫码关注,或者搜索微信公众号:码农悟凡


其他分类: