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部高分经典电影相关推荐

  1. Python爬虫爬取猫眼电影风语咒影评评论信息

    风语咒作为扛起国漫崛起的又一国漫之作,爬取风语咒猫眼的电影评论数据,以便对其评论做之后的数据分析. 此次demo的流程图如下: 一.找到猫眼电影中风语咒影评得json数据: l 找出url后,往下滚动 ...

  2. python爬虫 爬取bilibili新番榜

    这里用到的模块是request模块和beautifulsoup 首先我们需要打开Bilibili新番榜的审查元素 通过观察可以发现每一个动漫的信息都分别存在了li标签下的rank-item类中 而所有 ...

  3. python爬虫--爬取-猫眼电影-代码

    import re import requests class Mao():def __call__(self, *args, **kwargs):"""当前类的对象当做 ...

  4. python爬虫 爬取猫眼电影数据

    # 定义一个函数获取猫眼电影的数据​ import requestsdef main():url = url = 'http://maoyan.com/board/4?offset=0'html = ...

  5. 爬取猫眼top100并存入csv文件中

    使用python爬虫爬取猫眼电影top100 import requests import re import csvif __name__=="__main__":headers ...

  6. Python爬虫爬取网页数据并存储(一)

    Python爬虫爬取网页数据并存储(一) 环境搭建 爬虫基本原理 urllib库使用 requests库使用 正则表达式 一个示例 环境搭建 1.需要事先安装anaconda(或Python3.7)和 ...

  7. 【python教程入门学习】Python爬虫抓取猫眼电影排行榜

    本节使用 Python 爬虫抓取猫眼电影网 TOP100 排行榜(https://maoyan.com/board/4)影片信息,包括电影名称.上映时间.主演信息. 在开始编写程序之前,首先要确定页面 ...

  8. 在当当买了python怎么下载源代码-python爬虫爬取当当网

    [实例简介]python爬虫爬取当当网 [实例截图] [核心代码] ''' Function: 当当网图书爬虫 Author: Charles 微信公众号: Charles的皮卡丘 ''' impor ...

  9. python爬虫代码实例-Python爬虫爬取百度搜索内容代码实例

    这篇文章主要介绍了Python爬虫爬取百度搜索内容代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 搜索引擎用的很频繁,现在利用Python爬 ...

最新文章

  1. PTA基础编程题目集-6-6 求单链表结点的阶乘和
  2. Android -- EventBus使用
  3. 如何查看计算机配置和名称,如何查看电脑本机配置和跑分
  4. 在vue单页应用中使用jquery
  5. hough变换连接边缘matlab,边缘检测与Hough变换实验报告 Matlab - 图文
  6. C语言小案例_10天从小白到入门C语言编程的学习秘籍
  7. 通过Xshell来访问和连接Linux
  8. 《信息安全程序设计基础》第零周学习总结
  9. Bailian4040 买书问题【Ad Hoc】
  10. 尼姑一般怎么自称_电池又一重大事故!选铅酸,还是锂电?听听电池老师傅怎么说!...
  11. SpringMvc @PathVariable 工作原理
  12. CeBIT亮点:IBM“绿色地平线” 战斗在雾霾治理的科技前线
  13. 安卓和iOS测试的区别
  14. php排序orderby,云优CMS如何按orderby排序上一条下一条信息
  15. git报错the remote end hung up unexpectedly
  16. unity3D灯光烘焙(二)
  17. 命令行里打 cd 简直是浪费生命
  18. 武林外传之同福奇缘 【安卓游戏】
  19. 微信小程序访问豆瓣电影API 403 400
  20. 天涯明月刀7月5号服务器维护,7月5日服务器临时维护更新公告(已完成)

热门文章

  1. 人活到极致,一定是素与简
  2. 华政全国计算机一级毕业,离校不离线 | 铛铛铛!毕业大佬返校宣讲会!
  3. udisk2阻止自动Mount某些设备
  4. Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backflash to be included
  5. 【论文阅读】【3d目标检测】Embracing Single Stride 3D Object Detector with Sparse Transformer
  6. 机器学习笔记 (第一周)
  7. vue報錯 To install it, you can run: npm install --save vue/types/umd
  8. Key exchange was not finished,connection is closed近期遇到这个错误sshd更新导致的
  9. 直播连麦怎么自动化测试
  10. java 中文转成_Java实现汉字转换为拼音 [转]