简述

代码直接借助python的selenium的库来控制浏览器,与requests和bs4相比,selenium允许你用高级多的方法实现网页交互,但是因为他启动了Web浏览器,下载文件会比较慢,并且难以在后台运行。假如你考虑的不是通过此程序来练习,那么就直接退出这篇文章。

思路上面,在父页面获取10部电影或者电视剧的link,然后跳转到电影详情页,进行信息爬取。

import os,re
from time import sleep
from selenium import webdriverURL = "https://www.douban.com/"
URLmovie = 'https://movie.douban.com/explore#!type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start=0'
URLseries = ''#后面直接加入跳转,无需这个变量
webdri_path = r'C:\Users\86151\AppData\Local\Google\Chrome\Application\chromedriver.exe'
global flag os.mkdir(os.path.join(".","douban"))
os.mkdir(os.path.join(".","douban","movie"))
os.mkdir(os.path.join(".","douban","series"))# 定义一个函数来获取电影的相关信息,并且存放在文件里面
def getInfo(titleOfWork,aim):# 获取电影发布时间和作品名称releaseTime = driver.find_element_by_class_name('year')if int(re.sub(r"\D","",releaseTime.text)) < 2018:return# 利用正则表达式取出发布时间中的非数字内容fileName = re.sub(r"\D","",releaseTime.text) + re.sub(r"\W","",titleOfWork)print(fileName)os.mkdir(os.path.join(".","douban",aim,fileName))# 存放电影图片driver.find_element_by_xpath('//*[@id="mainpic"]/a/img').screenshot(os.path.join(".","douban",aim,fileName,"pic.png"))# 创建一个txt文件,写入作品的基本内容,名称,上映年份,导演,主演,作品简介,豆瓣关于这个作品的链接with open(os.path.join(".","douban",aim,fileName,"info.txt"),"a") as movieFile:# 写入作品名称movieFile.write(titleOfWork+"\n")# 写入作品上映年份movieFile.write("上映日期:" + re.sub(r"\D","",releaseTime.text)+"\n")# 写入作品导演director = driver.find_element_by_class_name('attrs').textmovieFile.write("导演:" + director+"\n")# 写入作品主演starring = driver.find_element_by_class_name('actor').textmovieFile.write(starring+"\n")# 写入作品简介# introduction = driver.find_element_by_xpath('//*[@id="link-report"]/span[1]').textintroduction = driver.find_element_by_class_name('related-info').textmovieFile.write(introduction+"\n")# 写如链接movieFile.write("链接:"+driver.current_url)global flag flag +=1
def openURL(aim,Links):global flagflag = 0for link in Links:# 获取电影名称titleOfWork = link.textprint(type(link.text[-3:]))if ("." not in titleOfWork[-3:]) or (float(titleOfWork[-3:]) < 7):continuedriver.execute_script(js.format(link.get_attribute("href")))driver.switch_to_window(driver.window_handles[-1])getInfo(titleOfWork[:-3],aim)# 关闭新建的电影窗口driver.close()driver.switch_to_window(driver.window_handles[0])if flag == 10:break
try:driver = webdriver.Chrome(webdri_path)driver.get(URLmovie)driver.implicitly_wait(3)driver.maximize_window()sleep(1)js = "window.open('{}','_blank');"# 选10部电影,按评价排序选取电影driver.find_element_by_xpath('//*[@id="content"]/div/div[1]/div/div[2]/div[1]/form/div[3]/div[1]/label[2]/input').click()driver.find_elements_by_css_selector('.tag-list label')[4].click()# 将所有的电影链接存放在links数组里面movieLinks = driver.find_elements_by_class_name("item")openURL("movie",movieLinks)# 处理电视剧部分driver.find_element_by_xpath('//*[@id="db-nav-movie"]/div[2]/div/ul/li[3]/a').click()seriesLinks = driver.find_elements_by_class_name("item")openURL("series",seriesLinks)driver.quit()
except Exception as e:print(e)

常见问题

  1. 不能运行,看看是否安装webdriver。我用的是谷歌浏览器,所以使用的是谷歌的webdriver,请安装对应浏览器的对应版本。
  2. 有可能显示到一个让你登录的页面,这是由于我在刚开始打开页面时不是真正的豆瓣主页面。可以试着改变网络,或者增加跳转。

selenium爬取豆瓣电影和电视剧相关推荐

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

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

  2. python 爬虫实战六:用 selenium 爬取豆瓣电影

    今天帮朋友爬取豆瓣电影的数据,以便进行社交网络分析. 首先打开豆瓣电影,然后点击 分类 ,选择要爬取的特定电影 这里以国产喜剧片为例:依次点击 电影.喜剧.中国大陆 然后点击一个小的列表按键 找到我们 ...

  3. python selenium爬虫豆瓣_Scrapy+Selenium爬取豆瓣电影评论

    首先需要对目标网站进行分析,具体的分析这里不详细介绍.目标网站:豆瓣某个电影评论页面 https://movie.douban.com/subject/1292052/reviews,这个电影是肖申克 ...

  4. day02 requests请求库爬取豆瓣电影信息+selenium请求库

    一. requests请求库爬取豆瓣电影信息 - 请求url http://movie.douban.com/top250 - 请求方式 GET - 请求头 user-agent    cookies ...

  5. day02:requests爬取豆瓣电影信息

    一.requests爬取豆瓣电影信息 -请求url: https://movie.douban.com/top250 -请求方式: get -请求头: user-agent cookies二.sele ...

  6. 爬取豆瓣电影排名前250部电影并且存入Mongo数据库

    2019独角兽企业重金招聘Python工程师标准>>> 需求:爬取豆瓣电影top250(https://movie.douban.com/top250)的电影数据: 标题(title ...

  7. python爬取豆瓣电影top250_Python爬虫 - scrapy - 爬取豆瓣电影TOP250

    0.前言 新接触爬虫,经过一段时间的实践,写了几个简单爬虫,爬取豆瓣电影的爬虫例子网上有很多,但都很简单,大部分只介绍了请求页面和解析部分,对于新手而言,我希望能够有一个比较全面的实例.所以找了很多实 ...

  8. Requests库实战(三)---爬取豆瓣电影详细信息

    完整代码 爬取豆瓣电影的详细信息 地址:豆瓣电影动画 向下滑动时新增的数据也是Ajax请求,原理和上一个项目是一样的.唯一的不同是此处请求url携带了多个参数 import requests impo ...

  9. python爬虫慕课网利用xpath_python爬虫实践——零基础快速入门(二)爬取豆瓣电影...

    爬虫又称为网页蜘蛛,是一种程序或脚本. 但重点在于,它能够按照一定的规则,自动获取网页信息. 爬虫的基本原理--通用框架 1.挑选种子URL: 2.讲这些URL放入带抓取的URL列队: 3.取出带抓取 ...

  10. python如何爬取豆瓣_Python实战之如何爬取豆瓣电影?本文教你

    爬虫又称为网页蜘蛛,是一种程序或脚本. 但重点在于,它能够按照一定的规则,自动获取网页信息. 爬虫的基本原理--通用框架 1.挑选种子URL: 2.讲这些URL放入带抓取的URL列队: 3.取出带抓取 ...

最新文章

  1. linux块设备的IO调度算法和回写机制
  2. php下正则替换多个br /
  3. 运行python需要网吗-python搭建网站(想学Python有什么建议吗?)
  4. sdut 2137 数据结构实验之求二叉树后序遍历和层次遍历
  5. ML+DM顶会时间(2020)
  6. redhat5 oracle11g安装全程详解,RedHat5+Oracle11g安装全程详解.doc
  7. 3D重建 | 近5年前沿方法引用量TOP10工作汇总
  8. android LinearLayout和RelativeLayout实现精确布局
  9. 站怎么点都是一样_搞笑段子:都说女人是水做的,你怎么不太一样
  10. 修改firefox的默认缩放比
  11. tomcat UTF-8格式的HTML文件乱码
  12. java获取当前项目或类路径
  13. 微信红包订单存储架构变迁的最佳实践
  14. java cmd退出_在Java中关闭命令行窗口
  15. 杰魔(Geomagic Design)逆向工程软件学习0-产品逆向工程介绍
  16. 仿微信雷达寻好友动画
  17. siri 语义识别_如何查看使用Siri识别的歌曲列表
  18. 征服,才是技术人的本能
  19. 故障恢复控制台应用指南
  20. Dreamweaver CS4 解决序列号过期问题 OS XP

热门文章

  1. jodconverter+ pdfbox 实现 office文档转pdf(openoffice实现),并提取pdf为缩略图、预览图
  2. 硬盘检测工具哪个好?5款硬盘工具对比测试
  3. 韩顺平java30天Utils包下的工具类
  4. 安装mathtype打开word报错 mathtype.Dll cannot be found 解决方式
  5. HTML代码页面无法跳转为什么,html跳转新页面代码_html页面跳转代码
  6. java自动阅卷判断选择题,客观题型自动阅卷系统(管道过滤器模式)
  7. maya golaem crowd群集测试 带自己录制的简易教程
  8. java 调用 cplex
  9. 大数据Hadoop之——数据仓库Hive
  10. 广东21个地级市行政区划(2022)