初学python爬虫,感觉光看看学不到什么,自己瞎折腾了一个爬百度贴吧小说。
自己感觉不是很实用,不过还是写下来备忘下,也算留个纪念。
#! /usr/bin/env/python 27# coding:gbkimport urllib2import redef findurl(i): pattern=re.compile('/p//d{10}') Match=re.search(pattern,i).group() url='http://tieba.baidu.com'+Match+'?see_lz=1' return urldef findtitle(i): pattern=re.compile(u'/xb5/xda.+/xd5/xc2.+/xa1/xbf') title=re.search(pattern,i).group() return titledef 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="/xb5/xda.+/xd5/xc2.+" t') result=re.findall(pattern,page) for each in reversed(result): #fo.writelines(findtitle(each)+'/n') 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>','/n').rstrip('</div>').lstrip(stripl) fo.writelines(result+'/n') fo.close() PRint 'Done!'if __name__=='__main__': main()
新闻热点
疑难解答