• python爬虫笔记


    初学python爬虫,感觉光看看学不到什么,自己瞎折腾了一个爬百度贴吧小说。

    自己感觉不是很实用,不过还是写下来备忘下,也算留个纪念。

    #! /usr/bin/env/python 27
    # coding:gbk
    
    import urllib2
    import re
    
    def findurl(i):
        pattern=re.compile('/p/d{10}')
        Match=re.search(pattern,i).group()
        url='http://tieba.baidu.com'+Match+'?see_lz=1'
        return url
    
    def findtitle(i):
        pattern=re.compile(u'xb5xda.+xd5xc2.+xa1xbf')
        title=re.search(pattern,i).group()
        return title
    
    def main():
        name=raw_input('请输入贴吧名字:')
        fo=open(name+'.txt','w+')
        name=urllib2.quote(name)
        url='http://tieba.baidu.com/f/good?kw='+name+'&cid=0&pn='
        for index in xrange(550,-1,-50):
            page=urllib2.urlopen(url+str(index)).read()
            pattern=re.compile(u'<a href="/p/d{10}" title="xb5xda.+xd5xc2.+" t')
            result=re.findall(pattern,page)
            for each in reversed(result):
                #fo.writelines(findtitle(each)+'
    ')
                article=urllib2.urlopen(findurl(each)).read()
                pattern=re.compile('id="post_content.*?>(.*?)</div>')
                content=re.search(pattern,article).group()
                pattern=re.compile('.+>')
                stripl=re.search(pattern,content).group()
                result=content.replace('<br>','
    ').rstrip('</div>').lstrip(stripl)
                fo.writelines(result+'
    ')
        fo.close()
        print 'Done!'
    
    if __name__=='__main__':
        main()
    

      

    PS:水平所限,文中难免有错误之处,欢迎指正,共同交流探讨。如转载请保留本段话,注明出处。
  • 相关阅读:
    汉诺塔IX
    N!
    卡片游戏
    vuejs 2—bind
    vuejs 1—基础
    困难的串 Kryptn Factor Uva129
    JavaScript13—JSON
    JavaScript练习—二级菜单
    JavaScript12—tools.js
    JavaScript11—定时器
  • 原文地址:https://www.cnblogs.com/Mr-Rice/p/3838677.html
Copyright © 2020-2023  润新知