#!/ usr / bin / env python
#encoding = utf-8
汇入 要求
进口 重
导入 编解码器
从 bs4 导入 BeautifulSoup
从 openpyxl 导入 工作簿
wb  = 工作簿()
dest_filename  =  '电影.xlsx'
ws1  =  wb。积极的
ws1。title  =  “电影top250”

DOWNLOAD_URL  =  'http://movie.douban.com/top250/'


def  download_page(url):
    “”“获取网址地址页面内容”“”
    标头 = {
        'User-Agent':'Mozilla / 5.0(Macintosh; Intel Mac OS X 10_11_2)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 47.0.2526.80 Safari / 537.36'
    }
    数据 = 请求。get(url,headers = headers)。内容
    返回 数据


def  get_li(doc):
    汤 =  BeautifulSoup(doc,'html.parser')
    ol  = 汤。查找('ol',class_ = 'grid_view')
    名称 = []   #名字
    star_con  = []   #评价人数
    分数 = []   #分数
    info_list  = []   #短评
    因为 我 在 ol。find_all('li'):
        细节 =  i。查找('div',attrs = { 'class':'hd' })
        movie_name  = 详细信息。找到(
            'span',attrs = { 'class':'title' })。get_text()   #电影名字
        level_star  =  i。找到(
            'span',attrs = { 'class':'rating_num' })。get_text()   #评分
        星 = 我。查找('div',attrs = { 'class':'star' })
        star_num  =  star。找到(文=重。编译('评价'))  #评价

        信息 = 我。find('span',attrs = { 'class':'inq' })   #短评
        如果 信息:   #判断是否有短评
            info_list。追加(信息。get_text())
        其他:
            info_list。追加('无')
        得分。追加(level_star)

        名字。追加(movie_name)
        star_con。追加(star_num)
    页 = 汤。找到('span',attrs = { 'class':'next' })。find('a')   #获取下一页
    如果 页面:
        返回 名称,star_con,得分,info_list,DOWNLOAD_URL  + 页面[ 'href' ]
    返回 名称,star_con,得分,info_list,无


def  main():
    网址 =  DOWNLOAD_URL
    名称 = []
    star_con  = []
    分数 = []
    信息 = []
    而 网址:
        doc  =  download_page(url)
        电影,明星,level_num,info_list,url  =  get_li(doc)
        名称 = 名称 + 电影
        star_con  =  star_con  + 星级
        分数 = 分数 +  level_num
        信息 = 信息 + 信息列表
    为(我,米,直径:,p)在 拉链(名称,star_con,得分,信息):
        col_A  =  'A%s'  %(名称。索引(i)+  1)
        col_B  =  'B%s'  %(名称。索引(i)+  1)
        col_C  =  'C%s'  %(名称。索引(i)+  1)
        col_D  =  'D%s'  %(名称。索引(i)+  1)
        ws1 [ col_A ] =  i
        ws1 [ col_B ] =  m
        ws1 [ col_C ] =  o
        ws1 [ col_D ] =  p
    wb。保存(filename = dest_filename)


如果 __name__  ==  ' __main__ ':
    主要()

日常分享都是一些纯干货,是我学习很多教程筛选出来合适新手快速入门学Python,掌握一门技能让自己变得更好吧!想学的可以+关注后台call“学习”或评论“Python”无偿分享给你们 但一定要记得粉小可爱我哦!
公众号:学习py最风sao的方式

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐