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
之后下面进行爬取
from urllib import request
import random
import time
import csv
import re
import xlwt class catEyesMovie: def __init__(self):
self.url = 'https://maoyan.com/board/4?offset={}'
self.ua_list = [
'Win7:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1'
]
self.line = 1;
#'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' #获取网页内容
def get_page(self,url):
#使用随机的user-agent
headers = {'User-Agent':random.choice(self.ua_list)}
#创建请求对象
req = request.Request(url=url,headers=headers)
#发送请求
res = request.urlopen(req)
#获取相应对象
html = res.read().decode('utf-8','ignore')
return html #清洗数据
def clean_page(self,html,xwlt):
pattern = re.compile("""<div class="movie-item-info">.*?title="(.*?)".*?class="star">(.*?)</p>.*?releasetime">(.*?)</p>""", re.S)
r_list = pattern.findall(html)
self.write_page(r_list,xwlt) #保存内容
def write_page(self,r_list,xwlt):
one_film_dict = {}
for rt in r_list:
xwlt.write(self.line,0,rt[0].strip())
xwlt.write(self.line,1,rt[1].strip())
xwlt.write(self.line,2,rt[2].strip())
self.line+=1 def main(self,xwlt):
#凭借字符串
res = []
for i in range(1,11):
#拼接url地址 https://maoyan.com/board/4?offset={}
#获取当前页数
offset = (i-1)*10
url = self.url.format(offset)
html = self.get_page(url)
self.clean_page(html,xwlt) if __name__ == '__main__':
start = time.time()
spider = catEyesMovie()
#创建一个xlwt对象
book = xlwt.Workbook(encoding='utf-8')
#创建sheet,Sheet1为表的名字,cell_overwirite_ok为是否覆盖单元格
sheet1 = book.add_sheet(u'Sheet1',cell_overwrite_ok=True)
#进行第一行标题定义
sheet1.write(0,0,'电影名称')
sheet1.write(0,1,'主演')
sheet1.write(0,2,'上映时间')
#进行爬取
spider.main(sheet1)
book.save('D:\\write.xls')
end = time.time()
print('执行时间为: %.2f' % (end-start))
每次爬取到的数据结构为:
{'电影名称': '速度与激情5', '主演': '速度与激情5', '上映时间': '速度与激情5'}
{'电影名称': '驯龙高手', '主演': '驯龙高手', '上映时间': '驯龙高手'}
{'电影名称': '勇敢的心', '主演': '勇敢的心', '上映时间': '勇敢的心'}
{'电影名称': '闻香识女人', '主演': '闻香识女人', '上映时间': '闻香识女人'}
{'电影名称': '神偷奶爸', '主演': '神偷奶爸', '上映时间': '神偷奶爸'}
完成后的excel表格如下:

仅供学习!!
Python爬取猫眼电影100榜并保存到excel表格的更多相关文章
- 爬虫系列(1)-----python爬取猫眼电影top100榜
对于Python初学者来说,爬虫技能是应该是最好入门,也是最能够有让自己有成就感的,今天在整理代码时,整理了一下之前自己学习爬虫的一些代码,今天先上一个简单的例子,手把手教你入门Python爬虫,爬取 ...
- 50 行代码教你爬取猫眼电影 TOP100 榜所有信息
对于Python初学者来说,爬虫技能是应该是最好入门,也是最能够有让自己有成就感的,今天,恋习Python的手把手系列,手把手教你入门Python爬虫,爬取猫眼电影TOP100榜信息,将涉及到基础爬虫 ...
- 40行代码爬取猫眼电影TOP100榜所有信息
主要内容: 一.基础爬虫框架的三大模块 二.完整代码解析及效果展示 1️⃣ 基础爬虫框架的三大模块 1.HTML下载器:利用requests模块下载HTML网页. 2.HTML解析器:利用re正则表 ...
- python 爬取猫眼电影top100数据
最近有爬虫相关的需求,所以上B站找了个视频(链接在文末)看了一下,做了一个小程序出来,大体上没有修改,只是在最后的存储上,由txt换成了excel. 简要需求:爬虫爬取 猫眼电影TOP100榜单 数据 ...
- Python 爬取猫眼电影最受期待榜
主要爬取猫眼电影最受期待榜的电影排名.图片链接.名称.主演.上映时间. 思路:1.定义一个获取网页源代码的函数: 2.定义一个解析网页源代码的函数: 3.定义一个将解析的数据保存为本地文件的函数: ...
- Python爬虫项目--爬取猫眼电影Top100榜
本次抓取猫眼电影Top100榜所用到的知识点: 1. python requests库 2. 正则表达式 3. csv模块 4. 多进程 正文 目标站点分析 通过对目标站点的分析, 来确定网页结构, ...
- Requests+正则表达式爬取猫眼电影(TOP100榜)
猫眼电影网址:www.maoyan.com 前言:网上一些大神已经对猫眼电影进行过爬取,所用的方法也是各有其优,最终目的是把影片排名.图片.名称.主要演员.上映时间与评分提取出来并保存到文件或者数据库 ...
- python实战项目 — 使用bs4 爬取猫眼电影热榜(存入本地txt、以及存储数据库列表)
案例一: 重点: 1. 使用bs4 爬取 2. 数据写入本地 txt from bs4 import BeautifulSoup import requests url = "http:// ...
- 使用requests爬取猫眼电影TOP100榜单
Requests是一个很方便的python网络编程库,用官方的话是"非转基因,可以安全食用".里面封装了很多的方法,避免了urllib/urllib2的繁琐. 这一节使用reque ...
随机推荐
- Golang error 的突围
目录 error 的困局 尝试破局 Errors are just values handle not just check errors Only handle errors once 小结 胎死腹 ...
- CommonsMultipartFile 转为 File 类型
1.我们可以查看CommonsMultipartFile的源码发现有这样一个方法 @Override public InputStream getInputStream() throws IOExce ...
- HABSE表结构理解
也分为行列,行是索引,锁定数据,查找数据只能通过行 列:建表时必须知道列族,真实列(列簇)在插入数据时候可以指定 查找指定列,必须带列族,列族1:name
- yolo进化史之yolov3
yolov3的论文写的比较简略,不看yolov1,yolov2很难直接看懂. 建议先看v1,v2论文. yolov3主要做了几点改进 改进了特征提取部分的网络结构 多尺度预测 分类由softmax改为 ...
- TestNG(一) TestNG实战在idea中创建module
1.在ider里创建一个Module 2.直接点击下一步 3.输入Groupld h和Artifactid名称,点击下一步 4.点击Finish 创建完成
- MAC中Composer的使用
安装composer 安装前需确保系统PHP版本在5.3以上,在终端中执行以下命令下载Composer可执行文件: curl -sS https://getcomposer.org/installer ...
- Java基础之final、static关键字
一.前言 关于这两个关键字,应该是在开发工作中比较常见的,使用频率上来说也比较高.接口中.常量.静态方法等等.但是,使用频繁却不代表一定是能够清晰明白的了解,能说出个子丑演卯来.下面,对这两个关键字的 ...
- 转载:elastic5.x部署常见问题总结
原博文名称:ElasticSearch 5.0.0 安装部署常见错误或问题 原博文地址为:http://www.dajiangtai.com/community/18136.do?origin=csd ...
- 验证fstab文件修改是否正确
/etc/fstab文件是系统启动时要挂载点文件系统. 如果fstab文件配置错误,会导致系统无法正常启动. 最近我就是因为大意,在配置fstab重启服务器后,出现系统无法识别挂载点/opt/back ...
- 简述python的turtle绘画命令及解释
一 基础认识 turtle库是python的标准库之一,它是一个直观有趣的图形绘制数据库,turtle(海龟)图形绘制的概念诞生1969年.它的应用十分广,而且使用简单,只要在编写python程序时写 ...