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

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

    开发模块功能: 爬虫对信息的处理部分

    开发时间:5天的下午空余时间(每天大约1小时,边学模块的使用边开发)

    实现了:爬虫的基本功能,能够爬取指定网站的信息

    实现过程:导入2个python库:requests和BeautifulSoup,利用这些库自带的功能和根据之前 成员马壮分析过的网页源码信息 可以实现对网页源码内容的分析提取。

    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标签
    
            # 获取电影名字
            movieName=movieHd.find('span',attrs={'class':'title'}).getText()
            print movieName
    
            # 获取电影链接
            movieUrl=movieHd.find('a class="" href="')
            print movieUrl
    
    
            # 获取电影导演/演员
            movieBd = movieLi.find('div', attrs={'class': 'bd'})
            movieSF=movieBd.find('p',attrs={'class':''}).getText()
            print movieSF
    
    
            # 获取电影的评分
            movieScore=movieLi.find('span',attrs={'class':'rating_num'}).getText()
            print movieScore
    
            #获取电影的评论数
            movieEval=movieLi.find('div',attrs={'class':'star'})
            movieEvalNum=re.findall(r'd+',str(movieEval))[-1]
            print movieEvalNum
    
            # 获取电影短评
            movieQuote = movieLi.find('span', attrs={'class': 'inq'})
            # 有的电影没有短评,为防止报错,加次
            if(movieQuote):
                print movieQuote.getText()
            else:
                print ('没有短评!')

    遇到的问题及问题解决方法:

    安装BeautifulSoup和requests库时遇到了严重的问题:系统的python有问题,环境变量异常,不能正常运行模块的安装程序,最终在虚拟机里安装了xp系统和python2.7解决了这个问题

    安装BeautifulSoup和requests库时遇到了一般的问题:导入这两个模块后程序报错,不能正常工作,最终经检查发现,安装的模块版本不适用于python2.7,重新找到适配版本安装后问题解决。

  • 相关阅读:
    VMware安装centos7
    Docker Compose 启动mysql,redis,rabbitmq
    mysql升级到5.7
    Docker Compose搭建ELK
    Spring Boot源码(八):Spring AOP源码
    Spring AOP-基于@AspectJ风格
    JDK动态代理
    Spring Boot源码(七):循环依赖
    Spring Boot源码(六):Bean的创建详解
    Spring Boot源码(五):BeanFactoryPostProcessor和BeanPostProcessor
  • 原文地址:https://www.cnblogs.com/xingyunqi/p/7738790.html
Copyright © 2011-2022 走看看