zoukankan      html  css  js  c++  java
  • Forward团队-爬虫豆瓣top250项目-模块开发过程

    项目托管平台地址:https://github.com/xyhcq/top250 

    开发模块功能整合代码:控制是否将信息显示出来

    开发时间:2小时左右

    实现了:在上一名成员的程序基础上控制是否将信息显示在屏幕上

    实现过程:先声明一个变量作为是否显示的开关

     

    # 控制台输出抓取结果

    showInfo = 1

     

    showInfo=raw_input('是否需要在窗口显示结果,是为1,否为0,默认值为1:')

    if showInfo != '1':

        showInfo=0

    else :

        showInfo =1

     

    在每项信息中加入判断语句:

     

    def getData(html):

        # 分析代码信息,提取数据

        soup = BeautifulSoup(html, "html.parser")

     

        # 找到第一个class属性值为grid_view的ol标签

        movieList=soup.find('ol',attrs={'class':'grid_view'})

     

     

        # 找到所有的li标签

        for movieLi in movieList.find_all('li'):    

            # 找到第一个class属性值为hd的div标签

            movieHd=movieLi.find('div',attrs={'class':'hd'})

            # 找到第一个class属性值为title的span标签 #也可使用.string方法

     

            # 获取电影名字

            movieName=movieHd.find('span',attrs={'class':'title'}).getText()

            if showInfo==1:

                print movieName

            else:pass

            # 写入文件

            if writeFile == 1:

                f.write('电影名:'+movieName.encode('utf-8')+'    ')

            else:pass

     

            # 获取电影链接

            movieUrl=movieHd.find('a class="" href="')

            if showInfo==1:

                print movieUrl

            else:pass

            # 写入文件

            if writeFile == 1:

                f.write('链接:'+str(movieUrl)+'    ')

            else:pass

     

            # 获取电影导演/演员

            movieBd = movieLi.find('div', attrs={'class': 'bd'})

            movieSF=movieBd.find('p',attrs={'class':''}).getText()

            if showInfo==1:

                print movieSF

            else:pass

            # 写入文件

            if writeFile == 1:

                f.write('Staff:'+movieSF.encode('utf-8')+'    ')

            else:pass

     

            # 获取电影的评分

            movieScore=movieLi.find('span',attrs={'class':'rating_num'}).getText()

            if showInfo==1:

                print movieScore

            else:pass

            # 写入文件

            if writeFile == 1:

                f.write('评分:'+movieScore.encode('utf-8')+'    ')

            else:pass

     

            #获取电影的评论数

            movieEval=movieLi.find('div',attrs={'class':'star'})

            movieEvalNum=re.findall(r'd+',str(movieEval))[-1]

            if showInfo==1:

                print movieEvalNum

            else:pass

            # 写入文件

            if writeFile == 1:

                f.write('评论数:'+movieEvalNum.encode('utf-8')+'    ')

            else:pass

     

            # 获取电影短评

            movieQuote = movieLi.find('span', attrs={'class': 'inq'})

            # 有的电影没有短评,为防止报错,加次

            if(movieQuote):

                if showInfo==1:

                    print movieQuote.getText()

                else:pass

                # 写入文件

                if writeFile == 1:

                    f.write('短评:'+movieQuote.getText().encode('utf-8')+' ')

                else:pass

            else:

                # 写入文件

                if writeFile == 1:

                    f.write('短评:'+"这个电影没有短评"+' ')

                else:pass

     

     

    没有遇到问题

  • 相关阅读:
    Struts2+Spring3+Mybatis3开发环境搭建
    spring+struts2+mybatis
    【LeetCode】Populating Next Right Pointers in Each Node
    【LeetCode】Remove Duplicates from Sorted Array
    【LeetCode】Remove Duplicates from Sorted Array II
    【LeetCode】Binary Tree Inorder Traversal
    【LeetCode】Merge Two Sorted Lists
    【LeetCode】Reverse Integer
    【LeetCode】Same Tree
    【LeetCode】Maximum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/ngy12138/p/7742328.html
Copyright © 2011-2022 走看看