猫眼html源码,爬取猫眼及可视化(示例代码)

本文介绍了如何使用Python爬虫抓取猫眼电影TOP100的数据,包括电影名、得分等信息,并进行数据清洗、存储为Excel文件,最后通过数据可视化展示得分分布。通过散点图、扇形图、条形图和折线图对数据进行深入分析,揭示电影排名与得分的关系。
摘要由CSDN通过智能技术生成

一、主题式网络爬虫设计方案

1,主题式网络爬虫名称:

爬取猫眼电影TOP100

2,主题式网络爬虫爬取的内容与数据特征分析:

爬取内容为:电影名,得分,

数据特征分析:将其储存于xlsx文件中

3.主题式网络爬虫设计方案概述(包括实现思路与技术难点)

实现思路:首先进行对网页源代码的访问分析,用BeautifulSoup进行HTML的解析和信息的爬取,后续对爬取下来的信息用pandas进行绘图数据分析

技术难点:爬取信息时对标签的查找,写出查找所需标签的代码,对数据进行相应的分析

二、主题页面的结构特征分析

1.首先是对页面的解析

1 importmatplotlib as mpl2 mpl.use(‘agg‘)3 importrequests4 importre5 importpandas as pd6 importtime7 importseaborn as sns8 sns.set()9 mpl.rcParams[‘font.sans-serif‘]=[u‘SimHei‘]10 mpl.rcParams[‘axes.unicode_minus‘]=False11 defget_one_page(url, headers):12 ‘‘‘

13 抓取单个网页的源码14 ‘‘‘

15 #添加headers参数,伪装成浏览器

16 response = requests.get(url, headers=headers)17 #200意味着成功的请求

18 if response.status_code == 200:19 return response.content.decode(‘utf-8‘)20 returnNone21 #设置猫眼电影TOP100的url

22

23 urls = [‘http://maoyan.com/board/4?offset={0}‘.format(i) for i in range(0, 100, 10)]24

25

26 headers ={27 ‘User-Agent‘: ‘Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36‘

28 }29 #先把所有网页源码爬下来

30 data =[]31 for url inurls:32 tmp = get_one_page(url, headers=headers)33 if not tmp ==None:34 data.append(tmp)35 time.sleep(0.5)36 #查看一下爬取的网页数量是否符合预期

37 print(‘{0} pages crawled‘.format(len(data)))

c04c2f5deda3488a8e94c289337ab88d.jpg

2.分析节点,打开网址https://maoyan.com/board/4,F12或右键点击检查

b3c386d6b1e049e9b24d952314e63ca1.jpg

三、网络爬虫程序设计

1.数据爬取与采集

1 #利用正则表达式,解析电影名、主演、排名、上映时间、分数数据

2 #使用re.compile将各个正则表达式封装成正则表达式对象,方便后边解析使用。re.S参数是为了让‘.‘能匹配空格。

3 actor_pattern = re.compile(‘s*(.*?)s*

‘, re.S)4 title_pattern = re.compile(‘class="name".*?movieId.*?>(.*?)‘, re.S)5 index_pattern = re.compile(‘.*?board-index.*?>(d+)‘, re.S)6 time_pattern = re.compile(‘(.*?)‘, re.S)7 score_pattern = re.compile(‘(d+).(d+)‘, re.S)8

9 #使用列表来存储数据

10 indexes =[]11 actors =[]12 titles =[]13 release_times =[]14 scores =[]15

16 #循环解析十个网页,将解析出来的数据附加在对应的列表中

17 for page indata:18 indexes.extend(re.findall(index_pattern, page))19 titles.extend(re.findall(title_pattern, page))20 actors.extend(re.findall(actor_pattern, page))21 release_times.extend(re.findall(time_pattern, page))22 scores.extend(re.findall(score_pattern, page))23 #清洗主演、上映

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值