初学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()