• 爬虫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)
  • 相关阅读:
    python 解释器交互模块 -- sys
    python 操作系统模块 -- OS
    python 随机数模块 -- random
    python 时间模块 -- time
    Python 面向对象
    python 模块
    python -- 面向对象进阶
    github连接提示
    linux day4
    git基本使用
  • 原文地址:https://www.cnblogs.com/ronyjay/p/6236742.html
Copyright © 2020-2023  润新知