Python爬取猫眼电影100榜并保存到excel表格

gongdada 2019-10-22 原文

Python爬取猫眼电影100榜并保存到excel表格

首先我们前期要导入的第三方类库有;

 

 

 通过猫眼电影100榜的源码可以看到很有规律 如:

 

 

 

亦或者是:

 

 

 根据规律我们可以得到非贪婪的正则表达式

“””<div class=”movie-item-info”>.*?title=”(.*?)”.*?class=”star”>(.*?)</p>.*?releasetime”>(.*?)</p>”””

之后我们观察网页地址(url)的变化规律:

这是第一页的网址: https://maoyan.com/board/4?offset=0

这是第二页的网址: https://maoyan.com/board/4?offset=10

这是第三页的网址: https://maoyan.com/board/4?offset=20

可以见的网页变化规律为:(当前页数-1)*10   即为:(N-1)*10

之后下面进行爬取

 1 from urllib import request
 2 import random
 3 import time
 4 import csv
 5 import re
 6 import xlwt
 7 
 8 class catEyesMovie:
 9 
10     def __init__(self):
11         self.url = 'https://maoyan.com/board/4?offset={}'
12         self.ua_list = [
13             'Win7:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1'
14         ]
15         self.line = 1;
16             #'User-Agent': 'Win7:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1'
17 
18 
19     #获取网页内容
20     def get_page(self,url):
21         #使用随机的user-agent
22         headers = {'User-Agent':random.choice(self.ua_list)}
23         #创建请求对象
24         req = request.Request(url=url,headers=headers)
25         #发送请求
26         res = request.urlopen(req)
27         #获取相应对象
28         html = res.read().decode('utf-8','ignore')
29         return html
30 
31     #清洗数据
32     def clean_page(self,html,xwlt):
33         pattern = re.compile("""<div class="movie-item-info">.*?title="(.*?)".*?class="star">(.*?)</p>.*?releasetime">(.*?)</p>""", re.S)
34         r_list = pattern.findall(html)
35         self.write_page(r_list,xwlt)
36 
37 
38     #保存内容
39     def write_page(self,r_list,xwlt):
40         one_film_dict = {}
41         for rt in r_list:
42             xwlt.write(self.line,0,rt[0].strip())
43             xwlt.write(self.line,1,rt[1].strip())
44             xwlt.write(self.line,2,rt[2].strip())
45             self.line+=1
46 
47 
48 
49     def main(self,xwlt):
50         #凭借字符串
51         res = []
52         for i in range(1,11):
53             #拼接url地址 https://maoyan.com/board/4?offset={}
54             #获取当前页数
55             offset = (i-1)*10
56             url = self.url.format(offset)
57             html = self.get_page(url)
58             self.clean_page(html,xwlt)
59 
60 
61 
62 
63 
64 if __name__ == '__main__':
65     start = time.time()
66     spider = catEyesMovie()
67     #创建一个xlwt对象
68     book = xlwt.Workbook(encoding='utf-8')
69     #创建sheet,Sheet1为表的名字,cell_overwirite_ok为是否覆盖单元格
70     sheet1 = book.add_sheet(u'Sheet1',cell_overwrite_ok=True)
71     #进行第一行标题定义
72     sheet1.write(0,0,'电影名称')
73     sheet1.write(0,1,'主演')
74     sheet1.write(0,2,'上映时间')
75     #进行爬取
76     spider.main(sheet1)
77     book.save('D:\\write.xls')
78     end = time.time()
79     print('执行时间为: %.2f' % (end-start))

每次爬取到的数据结构为:

1 {'电影名称': '速度与激情5', '主演': '速度与激情5', '上映时间': '速度与激情5'}
2 {'电影名称': '驯龙高手', '主演': '驯龙高手', '上映时间': '驯龙高手'}
3 {'电影名称': '勇敢的心', '主演': '勇敢的心', '上映时间': '勇敢的心'}
4 {'电影名称': '闻香识女人', '主演': '闻香识女人', '上映时间': '闻香识女人'}
5 {'电影名称': '神偷奶爸', '主演': '神偷奶爸', '上映时间': '神偷奶爸'}

完成后的excel表格如下:

 

 

 

 

        仅供学习!!

 

发表于
2019-10-22 10:49 小巩的python笔记 阅读() 评论() 编辑 收藏

 

版权声明:本文为gongdada原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/gongdada/p/11718473.html

Python爬取猫眼电影100榜并保存到excel表格的更多相关文章

随机推荐

  1. 电商秒杀方法

    一、秒杀业务分析 1.正常电子商务流程 (1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5) […]...

  2. 图文讲解ImageView的ScaleType

     ScaleType的设置方式包括: 1. 在layout的xml中定义android:scaleType=& […]...

  3. scrapy爬取校花网男神图片保存到本地

    爬虫四部曲,本人按自己的步骤来写,可能有很多漏洞,望各位大神指点指点 1、创建项目 scrapy startp […]...

  4. 目标检测算法之Fast R-CNN和Faster R-CNN原理

    一、Fast R-CNN原理   在SPPNet中,实际上特征提取和区域分类两个步骤还是分离的。只是使用ROI […]...

  5. Google全球服务器根域名的IP地址

    Google全球服务器根域名的IP地址 Google全球服务器根域名的IP地址 目前GOOGLE正与ZF继续谈 […]...

  6. 利用预测分析改进欠款催收策略,控制欺诈风险和信贷风险—— Altair Knowledge Studio 预测分析和机器学习

    前提摘要 在数字经济新时代,金融服务主管正在寻求方法去细分他们的产品和市场,保持与客户的联系,寻找能够推动增长 […]...

  7. NFC手机制作备用门禁卡

    NFC手机,门卡,淘宝买的空白的CUID卡(很多淘宝店家说cuid空白卡不支持手机复制,需要买硬件复制机,反正 […]...

  8. 电阻

    摘抄:电子实物培训凡亿教育 定义:• 阻挡电子在该物质中的运动及数量,使其达到规定的要求• 将电能转化其他能量 […]...

展开目录

目录导航