爬虫2:爬取百度贴吧的帖子
继续学习爬虫,我看的是崔庆才的学习教程,感觉还是不错,推荐给大家http://cuiqingcai.com/1052.html
很多爬虫的教程都有实战百度贴吧的例子,我今天也自己动手做了一个,但是感觉写的略复杂,有的地方也处理得不好,后面再慢慢优化吧
因为还不会写正则,也就全部用的beautifulsoup了
又到年末了,今天看Monky写的测试总结,也比较赞同,什么都要亲手实践的道理
# -*- coding:utf-8 -*- import urllib2 from bs4 import BeautifulSoup import sys reload(sys) sys.setdefaultencoding( "utf-8" ) class TBer: def __init__(self,baseurl,seeLz): self.baseurl=baseurl self.seelz='?see_lz='+str(seeLz) #获取页面 def getPage(self,PageNum): url=self.baseurl+self.seelz+'&pn='+str(PageNum) req=urllib2.Request(url) mypage = urllib2.urlopen(req).read().decode('utf-8') return mypage #页面soup对象 def soup(self,PageNum): soup = BeautifulSoup(self.getPage(PageNum),"html.parser") return soup # 解析页面 def getcontent(self,PageNum): items=self.soup(PageNum).find_all('div',class_='d_post_content j_d_post_content clearfix') for i in range(0,len(items)): #print items[i].text f=open(r'H:/tt.txt','a') f.write(items[i].text) f.close() #获取一共多少页 def getPageNum(self): souppage=self.soup(1) pagenum=souppage.find('li',class_='l_pager pager_theme_4 pb_list_pager').find_all("a") return len(pagenum)+1-2 baseurl= 'http://tieba.baidu.com/p/XXXXX' tber = TBer(baseurl,1) pagenum=tber.getPageNum()+1 for i in range(1,pagenum): tber.getPage(i) tber.getcontent(i)
我走的很慢,但从不后退