今天帮朋友爬取豆瓣电影的数据,以便进行社交网络分析。

首先打开豆瓣电影,然后点击 分类 ,选择要爬取的特定电影

这里以国产喜剧片为例:依次点击 电影喜剧中国大陆

然后点击一个小的列表按键

找到我们要爬取的数据

下拉到最底部,有一个 加载更多

点击会出现新的电影数据。说明这是一个动态网站,需要使用selenium来爬取。

selenium 是一个非常简单方便的库,用来模拟人进行上述操作。但是需要提前安装好这个库,而且需要安装火狐或者Chrome浏览器的geckodriver,具体的细节可以阅读官方教程,或者其他网上的一些教程。

这里以点击 加载更多 10次为例,爬取200部电影数据。

代码如下:

# -*- coding: utf-8 -*-
"""
Created on Sun Dec 20 10:10:41 2020@author: zxw
"""
# 引入库
from selenium import webdriver
import time
import pandas as pd
start_url = 'https://movie.douban.com/'def get_driver():try:return webdriver.PhantomJS()except Exception:return webdriver.Firefox()driver = get_driver()
driver.get(start_url)# 点击“分类”
driver.find_element_by_link_text('分类').click()
time.sleep(1)
# 点击“电影”
driver.find_element_by_xpath('/html/body/div[3]/div[1]/div/div[1]/div/div/div[1]/div[1]/ul[1]/li[2]/span').click()
time.sleep(1)
# 点击“喜剧”
driver.find_element_by_xpath('/html/body/div[3]/div[1]/div/div[1]/div/div/div[1]/div[1]/ul[2]/li[3]/span').click()
time.sleep(1)
# 点击“中国大陆”
driver.find_element_by_xpath('/html/body/div[3]/div[1]/div/div[1]/div/div/div[1]/div[1]/ul[3]/li[2]/span').click()
time.sleep(1)
# 点击“展开列表”
driver.find_element_by_xpath('/html/body/div[3]/div[1]/div/div[1]/div/div/div[1]/div[2]/div[2]/div[2]/a[2]/span').click()
time.sleep(1)# 设置点击“加载更多”的次数
n = 10for i in range(n):driver.find_element_by_class_name('more').click()time.sleep(1)# 爬取数据
title = driver.find_elements_by_class_name('title')
rating = driver.find_elements_by_class_name('rating')
cast = driver.find_elements_by_class_name('cast')
data = pd.DataFrame({"电影":title,"评分":rating,"导演":cast,"主演":cast})data['电影'] = data['电影'].apply(lambda x: x.text)
data['评分'] = data['评分'].apply(lambda x: x.text)
data['导演'] = data['导演'].apply(lambda x: x.text.split('\n')[0][3:].split('/'))
data['主演'] = data['主演'].apply(lambda x: x.text.split('\n')[1][3:].split('/'))# 输出
outputpath='c:/Users/zxw/Desktop/修身/与自己/数据科学/爬虫/豆瓣电影/movie.csv' ## 路径需要自己改!
data.to_csv(outputpath,sep=',',index=False,header=True,encoding='utf_8_sig')

最终爬取效果如下:

python 爬虫实战六:用 selenium 爬取豆瓣电影相关推荐

  1. Python爬虫实战案例一:爬取猫眼电影

    背景 笔者上一篇文章<基于猫眼票房数据的可视化分析>中爬取了猫眼实时票房数据,用于展示近三年电影票房概况.由于数据中缺少导演/演员/编剧阵容等信息,所以爬取猫眼电影数据进行补充.关于爬虫的 ...

  2. 【Python爬虫实战】使用Selenium爬取QQ音乐歌曲及评论信息

    本文对使用到的技术仅做简单的介绍,若想了解更多,请前往相应的官网网站进行学习. 本文适合对爬虫相关知识接触不多的新手,主要是普及Selenium如何做爬虫,大佬请跳过. 1.Selenium简单介绍 ...

  3. python爬取豆瓣电影信息可行性分析_Python爬虫实现的根据分类爬取豆瓣电影信息功能示例...

    本文实例讲述了Python爬虫实现的根据分类爬取豆瓣电影信息功能.分享给大家供大家参考,具体如下: 代码的入口:if __name__ == '__main__': main()#! /usr/bin ...

  4. Python 爬虫实战,模拟登陆爬取数据

    Python 爬虫实战,模拟登陆爬取数据 从0记录爬取某网站上的资源连接: 模拟登陆 爬取数据 保存到本地 结果演示: 源网站展示: 爬到的本地文件展示: 环境准备: python环境安装 略 安装r ...

  5. Python爬虫实战系列(一)-request爬取网站资源

    Python爬虫实战系列(一)-request爬取网站资源 python爬虫实战系列第一期 文章目录 Python爬虫实战系列(一)-request爬取网站资源 前言 一.request库是什么? 二 ...

  6. python爬虫实战(一)--爬取知乎话题图片

    原文链接python爬虫实战(一)–爬取知乎话题图片 前言 在学习了python基础之后,该尝试用python做一些有趣的事情了–爬虫. 知识准备: 1.python基础知识 2.urllib库使用 ...

  7. python爬虫入门练习:BeautifulSoup爬取猫眼电影TOP100排行榜,pandas保存本地excel文件

    传送门:[python爬虫入门练习]正则表达式爬取猫眼电影TOP100排行榜,openpyxl保存本地excel文件 对于上文使用的正则表达式匹配网页内容,的确是有些许麻烦,替换出现任何的差错都会导致 ...

  8. 使用Selenium爬取豆瓣电影前100的爱情片相关信息

    slenium入门小练手之使用Selenium爬取豆瓣电影前100的爱情片相关信息 文章目录 什么是Selenium 1.准备工作 1.1 安装Selenium 1.2 浏览器驱动安装 1.3 环境变 ...

  9. 爬虫入门经典(四) | 如何爬取豆瓣电影Top250

      大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己 ...

最新文章

  1. centos7 利用 crontab 执行 定时任务 计划任务
  2. yml语法规则 (5.spring boot配置文件注入@ConfigurationProperties)、配置文件处理器...
  3. oracle适配器接口,Oracle
  4. EOS节点之争已开始 准备好欣赏了么?
  5. Python 之字典常用方法
  6. 实用JavaScript网页特效编程百宝箱pdf
  7. sourcetree帮助文档
  8. 使用httpclient发送get请求
  9. Android Studio 解决 Cannot resolve symbol xxx 添加依赖后出现飘红
  10. 机器换人是走向智能制造的必然过程,那么机器人的价值主要体现在哪些方面?
  11. 数学物理计算机的思考
  12. maven配置环境变量
  13. 【腾讯TMQ】TBS主线众测实践之路
  14. 凝视联通4G和4G+战略落地半年报,从数据亮点中找出路
  15. python基础篇{数据类型}
  16. iOS 开发中的日期格式
  17. 一个屌丝程序员的青春(一三二)
  18. 实验二 面向对象(一)(预习报告)
  19. Javabase入门介绍
  20. 使用图神经网络预测药物-药物相互作用

热门文章

  1. excel多条件查找(用到index和match)
  2. 洛谷P2392 kkksc03考前临时抱佛脚
  3. 知识图谱论文阅读(十五)【arxiv】A Survey on Knowledge Graph-Based Recommender Systems
  4. netlify国内快吗
  5. 语音信号处理(1):男女声在线识别系统(倒谱、基音频率)
  6. 虚拟串口仿真:Internal Exception: access violation in module ‘DSIM.DLL‘ [00002C82].
  7. 实验一 HTML编程基础和Javascript编程基础
  8. 【20】核心易中期刊推荐——计算机科学电子通信(EI索引)
  9. UML测试题(顺序图建模)
  10. K2K 亚太原创品牌崛起的故事,释放个性,诠释崭新生活态度