python爬虫:爬取猫眼TOP100榜的100部高分经典电影
1、问题描述:
爬取猫眼TOP100榜的100部高分经典电影,并将数据存储到CSV文件中
2、思路分析:
(1)目标网址:http://maoyan.com/board/4
(2)代码结构:
(3) init(self)初始化函数
· hearders用到了fake_useragent库,用来随机生成请求头。
· datas空列表,用于保存爬取的数据。
def __init__(self,url):self.headers = {"User-Agent": UserAgent().random}self.url = urlself.datas = list()
(4) getPage()函数
猫眼Top100榜总共有10页电影,每页的链接基本一样,只有最后一个数字在变化http://maoyan.com/board/4?offset=10,所以可以通过for循环来访问10页的电影。
# 通过for循环,获取10页的电影信息的源码
def getPage(self):for i in range(0,10):url = self.url + "?offset={0}".format(i*10)response = requests.get(url, headers = self.headers)if response.status_code == 200:self.parsePage(response.text)else:return None
(5)parsePage()函数
每页都有10部高分经典电影,通过BeautifulSoup获取每页10部电影的详细信息:名字、主演、上映时间、评分。
# 通过BeautifulSoup获取每页10部电影的详细信息
def parsePage(self, html):soup = BeautifulSoup(html, "html.parser")details = soup.find_all("dd")for dd in details:data = {}data["index"] = dd.find("i").textdata["name"] = dd.find("p", class_ = "name").textdata["star"] = dd.find("p", class_="star").text.strip()[3:]data["time"] = dd.find("p", class_="releasetime").text.strip()[5:]data["score"] = dd.find("p", class_="score").textself.datas.append(data)
(6)savaData()函数
通过DataFrame(),把Top100的电影存储到CSV文件中。
它默认的是按照列名的字典顺序排序的。想要自定义列的顺序,可以加columns字段
# 通过DataFrame,把Top100的电影存储到CSV文件中
def saveData(self):self.getPage()data = pd.DataFrame(self.datas)columns = ["index", "name", "star", "time", "score"]data.to_csv(".\maoyanTop100.csv", index=False, columns=columns)
3、效果展示
4、完整代码:
# -* conding: utf-8 *-
#author: wangshx6
#data: 2018-11-08
#description: 爬取猫眼TOP100榜的100部高分经典电影import requests
from bs4 import BeautifulSoup
import pandas as pd
from fake_useragent import UserAgentclass MaoyanSpider(object):def __init__(self,url):self.headers = {"User-Agent": UserAgent().random}self.url = urlself.datas = list()# 通过for循环,获取10页的电影信息的源码def getPage(self):for i in range(0,10):url = self.url + "?offset={0}".format(i*10)response = requests.get(url, headers = self.headers)if response.status_code == 200:self.parsePage(response.text)else:return None# 通过BeautifulSoup获取每页10部电影的详细信息def parsePage(self, html):soup = BeautifulSoup(html, "html.parser")details = soup.find_all("dd")for dd in details:data = {}data["index"] = dd.find("i").textdata["name"] = dd.find("p", class_ = "name").textdata["star"] = dd.find("p", class_="star").text.strip()[3:]data["time"] = dd.find("p", class_="releasetime").text.strip()[5:]data["score"] = dd.find("p", class_="score").textself.datas.append(data)# 通过DataFrame,把Top100的电影存储到CSV文件中def saveData(self):self.getPage()data = pd.DataFrame(self.datas)columns = ["index", "name", "star", "time", "score"]data.to_csv(".\maoyanTop100.csv", index=False, columns=columns)if __name__ == "__main__":url = "http://maoyan.com/board/4"spider = MaoyanSpider(url)spider.saveData()
转载于:https://www.cnblogs.com/wangshx6/p/9934189.html
python爬虫:爬取猫眼TOP100榜的100部高分经典电影相关推荐
- Python爬虫爬取猫眼电影风语咒影评评论信息
风语咒作为扛起国漫崛起的又一国漫之作,爬取风语咒猫眼的电影评论数据,以便对其评论做之后的数据分析. 此次demo的流程图如下: 一.找到猫眼电影中风语咒影评得json数据: l 找出url后,往下滚动 ...
- python爬虫 爬取bilibili新番榜
这里用到的模块是request模块和beautifulsoup 首先我们需要打开Bilibili新番榜的审查元素 通过观察可以发现每一个动漫的信息都分别存在了li标签下的rank-item类中 而所有 ...
- python爬虫--爬取-猫眼电影-代码
import re import requests class Mao():def __call__(self, *args, **kwargs):"""当前类的对象当做 ...
- python爬虫 爬取猫眼电影数据
# 定义一个函数获取猫眼电影的数据 import requestsdef main():url = url = 'http://maoyan.com/board/4?offset=0'html = ...
- 爬取猫眼top100并存入csv文件中
使用python爬虫爬取猫眼电影top100 import requests import re import csvif __name__=="__main__":headers ...
- Python爬虫爬取网页数据并存储(一)
Python爬虫爬取网页数据并存储(一) 环境搭建 爬虫基本原理 urllib库使用 requests库使用 正则表达式 一个示例 环境搭建 1.需要事先安装anaconda(或Python3.7)和 ...
- 【python教程入门学习】Python爬虫抓取猫眼电影排行榜
本节使用 Python 爬虫抓取猫眼电影网 TOP100 排行榜(https://maoyan.com/board/4)影片信息,包括电影名称.上映时间.主演信息. 在开始编写程序之前,首先要确定页面 ...
- 在当当买了python怎么下载源代码-python爬虫爬取当当网
[实例简介]python爬虫爬取当当网 [实例截图] [核心代码] ''' Function: 当当网图书爬虫 Author: Charles 微信公众号: Charles的皮卡丘 ''' impor ...
- python爬虫代码实例-Python爬虫爬取百度搜索内容代码实例
这篇文章主要介绍了Python爬虫爬取百度搜索内容代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 搜索引擎用的很频繁,现在利用Python爬 ...
最新文章
- PTA基础编程题目集-6-6 求单链表结点的阶乘和
- Android -- EventBus使用
- 如何查看计算机配置和名称,如何查看电脑本机配置和跑分
- 在vue单页应用中使用jquery
- hough变换连接边缘matlab,边缘检测与Hough变换实验报告 Matlab - 图文
- C语言小案例_10天从小白到入门C语言编程的学习秘籍
- 通过Xshell来访问和连接Linux
- 《信息安全程序设计基础》第零周学习总结
- Bailian4040 买书问题【Ad Hoc】
- 尼姑一般怎么自称_电池又一重大事故!选铅酸,还是锂电?听听电池老师傅怎么说!...
- SpringMvc @PathVariable 工作原理
- CeBIT亮点:IBM“绿色地平线” 战斗在雾霾治理的科技前线
- 安卓和iOS测试的区别
- php排序orderby,云优CMS如何按orderby排序上一条下一条信息
- git报错the remote end hung up unexpectedly
- unity3D灯光烘焙(二)
- 命令行里打 cd 简直是浪费生命
- 武林外传之同福奇缘 【安卓游戏】
- 微信小程序访问豆瓣电影API 403 400
- 天涯明月刀7月5号服务器维护,7月5日服务器临时维护更新公告(已完成)
热门文章
- 人活到极致,一定是素与简
- 华政全国计算机一级毕业,离校不离线 | 铛铛铛!毕业大佬返校宣讲会!
- udisk2阻止自动Mount某些设备
- Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backflash to be included
- 【论文阅读】【3d目标检测】Embracing Single Stride 3D Object Detector with Sparse Transformer
- 机器学习笔记 (第一周)
- vue報錯 To install it, you can run: npm install --save vue/types/umd
- Key exchange was not finished,connection is closed近期遇到这个错误sshd更新导致的
- 直播连麦怎么自动化测试
- java 中文转成_Java实现汉字转换为拼音 [转]