博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Forward团队-爬虫豆瓣top250项目-模块开发过程
阅读量:5327 次
发布时间:2019-06-14

本文共 1999 字,大约阅读时间需要 6 分钟。

项目托管平台地址: 

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

开发时间: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')+'\n')

            else:pass

        else:

            # 写入文件

            if writeFile == 1:

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

            else:pass

 

 

没有遇到问题

转载于:https://www.cnblogs.com/ngy12138/p/7742328.html

你可能感兴趣的文章
下载文件,blob方式
查看>>
使用vue的v-model自定义 checkbox组件
查看>>
Amcharts 柱状图和线形图
查看>>
APC注入
查看>>
关于ES6 Class语法相关总结
查看>>
文件处理
查看>>
[工具] Seer 代码预览器
查看>>
[工具] Sublime Text 使用指南
查看>>
Hangfire在ASP.NET CORE中的简单实现方法
查看>>
今晚的比赛(2011.12.4)
查看>>
统计细菌基因组ORF
查看>>
Unity3D笔记 英保通三 脚本编写 、物体间通信
查看>>
python实现对某招聘网接口测试获取平台信息
查看>>
JavaWeb项目生成PDF文件添加水印图片并导出
查看>>
Algorithm——何为算法?
查看>>
css 跳转电脑分辨率
查看>>
行为型模型 中介者模式
查看>>
Web服务器的原理
查看>>
小强升职计读书笔记
查看>>
Oracle数据库端分页SQL语句
查看>>