前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python爬虫,从sohu上抓小说《人形软件》

python爬虫,从sohu上抓小说《人形软件》

作者头像
the5fire
发布2019-02-28 16:12:41
4390
发布2019-02-28 16:12:41
举报

上次发的从sina上抓小说的代码,这次来一个sohu的,不过总结python爬虫的方法,其实无外乎urllib和正则表达式的使用。掌握了这俩,基本就是有了就抓。 直接上代码了,以下代码仅供参考,切不可用于非法用途。

.. code:: python

代码语言:javascript
复制
import urllib2
import sys
import re


def getPage(url,offset = '295'):
    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)
    try:
        h1content = p.sub("",h1[0])
    except Exception,e:
        print str(e)
        return
    fp = open(r'renxingruanjian.txt','a')
    fp.write(h1content+ '\n')
    fp.flush()

    #print content
    content = content.replace('\r','')
    content = content.replace('\n','')
    content = content.replace(' ','')
    content = content.replace('     ','')
    #fp.write(content+'\n')
    cont = re.search('<divclass="txtC"id="txtBg">(.*)</p></div><divclass="boxA">', content, re.S)
    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:
        getPage(url, offset = str(startOffset))  # 感谢网友提醒,少了个参数
        startOffset += 1

if __name__ == '__main__':
    getBook(url = 'http://lz.book.sohu.com/chapter-21882-117887', startOffset = 294, endOffset = 395)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-02-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档