python实例,爬取猫眼电影的几大类排行榜,并存储excel

抓取的内容:猫眼电影五个榜单中的第一页数据
在这里插入图片描述

使用模块含BeautifulSoup4、requests、pandas、xlsxwriter

首先需要安装BeautifulSoup模块,其他模块安装方法类同
安装方法:
win + r 打开运行窗口输入cmd
黑窗输入 where python
cd 进入工作目录下,输入 pip install BeautifulSoup4
在这里插入图片描述

出现下图即安装成功
在这里插入图片描述

import requests
from bs4 import BeautifulSoup
import pandas
import xlsxwriter

menuList = [1,2,4,6,7] #用这个列表组装请求地址
urlList = [] #存储请求地址列表
allLis = {} #总字典
def getUrlList(url):
    ''' 处理组装url '''
    for i in menuList:
        urlList.append(url.format(i))
        
    if len(urlList) > 0 :
        return 0
    else:
        return -1

def getSinglePage(url):
    
    ''' 主函数 '''
    if getUrlList(url) == 0 :
        
         for val in urlList:
             single = {}
             smallList = []
             headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'}#从页面中拿取的User-Agent,如果不加头部信息,会被浏览器拦截,出现403的情况
             res = requests.get(val,headers=headers).text #模拟浏览器请求
             requests.encoding = 'utf-8' #以utf-8编码格式拿取
             soup = BeautifulSoup(res,'html.parser') #以'html.parser'去解析所拿到的文本内容
             soupList = soup.select('dd')  #抓取页面元素中dd标签
             
             for i in soupList: #单字典处理,分别抓取所有需要字段
                 single['排名'] = i.select('dd i')[0].text
                 single['电影名']=i.select('.name a')[0].text
                 single['主演'] = i.select('.star')[0].text
                 single['上映时间'] = i.select('.releasetime')[0].text
                 smallList.append(single)#通过append向smallList中添加数据
                 single = {}#为了防止循环所有结果后single指向相同,导致结果出现误差,每次循环后重新给其赋值
             allLis[getTitles(val.split('/')[-1])] = smallList #拆分url,吊桶函数匹配字典key值
             smallList = [] #也是为了防止指向相同,结果失常
         writeExcel(allLis) 
             
def getTitles(val):
    
    ''' 手动switch,通过url路径分割,匹配titles '''
    switer = {
        '7':'热映口碑榜',
        '6':'最受期待榜',
        '1':'国内票房榜',
        '2':'北美票房榜',
        '4':'TOP10榜'}
    return switer.get(val)

def writeExcel(Ols):
	 ''' 写入excel '''
    tables = pandas.DataFrame(Ols) #使用pandas去处理我们的数据
    tables.to_excel('MovieRank.xlsx')
    
getSinglePage('https://maoyan.com/board/{}') #调用主函数


最后,运行代码。就会在当前工作目录生成一个名为MovieRank.xlsx的excel文件
在这里插入图片描述

在这里插入图片描述
初学python,请多指教

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值