zoukankan      html  css  js  c++  java
  • 爬虫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)
  • 相关阅读:
    CCF NOI1006 捡石头
    POJ NOI MATH-7648 蓄水池水管问题
    CCF NOI1005 存款收益
    CCF NOI1004 填充矩形
    CCF NOI1003 猜数游戏
    CCF NOI1002 三角形
    Project Euler Problem 26 Reciprocal cycles
    HDU1799 循环多少次?
    CCF NOI1001 温度转换
    POJ NOI MATH-7647 余数相同问题
  • 原文地址:https://www.cnblogs.com/ronyjay/p/6236742.html
Copyright © 2011-2022 走看看