猫眼Top电影信息获取

# https://movie.douban.com/top250
# https://movie.douban.com/top250?start=25&filter=
# https://movie.douban.com/top250?start=50&filter=
#   用过观察找出 页面 url 的变化规律  每次 start的值 增加25
import requests
from bs4 import BeautifulSoup
import openpyxl   #  第三方库 (用于建立 Excel 表) 通过 pip instal openpyxl  下载安装
list2 = []   # 用于将爬取的信息存入此列表方便存入 Excel 表中
for i in range(1,11):
    #  生成 1,2,3,4,5,6,7,8,9,10,11
    number =  (i-1)*25
    #print(number)
    #   数据请求
    link = 'https://movie.douban.com/top250?start='+str(number)+'&filter='
    #print(i,link)
    headers ={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
    }   #  当中为 User-Agent  字段 ,注意为字典格式
    r = requests.get(link,headers=headers)
    #print(r.status_code)   页面状态响应码



    #  数据转换
    soup = BeautifulSoup(r.text,'html.parser')
    #print(soup)



    #  提取数据
    #   找出最小级的父标签(一个数据)
    nu = soup.find_all('div',class_='item')
    for g in nu:
        #   电影序号
        num = g.find('em',class_='').get_text()
    #   print(num)
        #   电影名
        name = g.find('span',class_='title').get_text()
        name = '《'+name+'》'
         #print(name)
        #   电影英文名称
        name_english = g.find_all('span',class_='title')
        #print(name_english)
        #   由于有的没有英文名字(例如大圣娶亲就没有) 会报错 这里加个判断
        #   由于 使用 fing_all 找出为列表的
        #   中文 英文 html 标签结构一样 所以列表中包含的信息有两种
        #   通过列表切片的形式 【1】找出列表中的英文(也就是我们需要的数据)
        #  下面的结果不打印,当做能力扩展吧
        # if len(name_english)>1:
        #    print(g.find_all('span',class_='title')[1].get_text())
        #   电影评分
        pingfen  =  g.find('span',class_='rating_num').get_text()
     #   print(pingfen)
        #   推荐语
        #   由于第 10 页 《网络谜踪》中 没有推荐语
       # tuijianyu = g.find('span',class_='inq').get_text()
        #print(tuijianyu)
        try:
            tuijianyu = g.find('span',class_='inq').get_text()
        except AttributeError:
            tuijianyu = "=====很抱歉,这款没有推荐语====="
        #print(tuijianyu)
        #   电影的视频连接
        #    a 标签中的 href 的属性便是我们需要的
        urls = g.find('div',class_='info').find('a')['href']
        list2.append([num,name,pingfen,tuijianyu,urls])   #  将内容添加至定义的空列表中
       # print("序号: ",num,"电影名: ",name,"电影评分",pingfen,"推荐语; ",tuijianyu,"视频链接",urls)



#  保存数据
file = openpyxl.Workbook()   #  新建一个工作薄
sheet = file.active     #  在建立工作薄后建立工作表
sheet.title = '豆瓣爬虫'   #  命名
#  开始写入
sheet['A1'] = '排名 '
sheet['B1'] = '电影名 '
sheet['C1'] = '电影评分 '
sheet['D1'] = '推荐语 '
sheet['E1'] = '链接地址 '
for i in  list2:
    print(i)
    sheet.append(i)
file.save(r"C:\Users\DELL\Desktop\python_wd\文本信息\豆瓣爬虫.xlsx")  #  保存



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值