废话少说,直接上代码。

这是成果:

以下是全部代码:

from selenium import webdriver  # webdriver 的驱动程序
from selenium.webdriver.common.by import By # 提取数据
from selenium.webdriver import ChromeOptions    # chromeOptions 是一个配置 chrome 启动是属性的类。通过这个类,我们可以为chrome配置参数
from selenium.webdriver.support.wait import WebDriverWait   # 显示等待
from selenium.webdriver.support import expected_conditions as EC
import time # 导入time
import csv  # 导入csv
import os.path  # 创建文件夹
import requests # 请求网页数据
import re   # 正则匹配 文字匹配driver = webdriver.Chrome()WAIT = WebDriverWait(driver, 10)      # 等待def get_serch(url):try:# 发送请求driver.get(url=url)time.sleep(1)WAIT.until(EC.presence_of_element_located((By.LINK_TEXT,'分类'))).click()time.sleep(1)return WAITexcept:print("erro")def get_data(WAIT):all_list = []n = 15   # 设置点击加载更多的次数for page in range(n):WAIT.until(EC.presence_of_element_located((By.LINK_TEXT,'加载更多'))).click()print(f'==============================正在点击第{page}页的数据内容==============================')time.sleep(5)# 找到所有的a标签all_data = WAIT.until(EC.presence_of_all_elements_located((By.XPATH,'//*[@id="app"]/div/div[1]/div[3]/a')))for i in all_data:  # 找到所有的a标签循环并点击i.click()# 浏览器切换对象driver.switch_to.window(driver.window_handles[-1])# 提取想要的信息title = WAIT.until(EC.presence_of_element_located((By.XPATH,'//*[@id="content"]/h1/span[1]'))).textimages = WAIT.until(EC.presence_of_element_located((By.XPATH,'//*[@class="subject clearfix"]/div[1]/a/img'))).get_attribute('src')ditail = WAIT.until(EC.presence_of_element_located((By.XPATH,'//div[@class="related-info"]/div/span'))).textaoter = WAIT.until(EC.presence_of_element_located((By.XPATH,'//*[@class="subject clearfix"]/div[2]/span[1]'))).get_attribute('textContent') # 取文本score = WAIT.until(EC.presence_of_element_located((By.XPATH,'//*[@class="subjectwrap clearfix"]/div[2]/div[1]/div[2]/strong'))).textevaluate = WAIT.until(EC.presence_of_element_located((By.XPATH,'//*[@class="subjectwrap clearfix"]/div[2]/div[1]/div[2]/div/div/a/span'))).get_attribute('textContent')item = {'标题': title,'图片': images,'简介': ditail,'作者': aoter,'评分': score,'评价': evaluate}all_list.append(item)print(item)save_Images(images,title)driver.close()driver.switch_to.window(driver.window_handles[0])return all_listdef save_csv(all_list):# 表头headers = ['标题','图片','简介','作者','评分','评价']# 打开文件with open('豆瓣电影.csv','a+',encoding='utf-8',newline='')as f:f_csv = csv.DictWriter(f,headers)f_csv.writeheader()f_csv.writerows(all_list)def save_Images(images,title):if not os.path.exists('豆瓣图片'):  # 创建文件夹os.mkdir('豆瓣图片')images_data = requests.get(url=images).contentbig = '[?<>/\|:"*]'     # 剔除特殊字符保存图片li = re.sub(big,"",title)with open('豆瓣图片\\' + li + '.jpg',mode='wb')as f:f.write(images_data)print("保存图片===>",title)def main():url = 'https://movie.douban.com/'WAIT = get_serch(url)all_list = get_data(WAIT)save_csv(all_list)if __name__ == '__main__':main()

selenium自动化测试豆瓣电影近期热门榜,和保存至Excel相关推荐

  1. 爬虫:获取豆瓣电影爱情片榜单封面图片

    电影中单纯而美好的爱情总是让人陷入美好无瑕的幻想. 代码已上传至个人GitHub,可供查看:获取豆瓣电影爱情片榜单封面图片 爬虫:获取豆瓣电影爱情片榜单封面图片 目的:获取豆瓣电影爱情片榜单封面图片, ...

  2. 转发 2013豆瓣电影【口碑榜】Top100

    2013豆瓣电影[口碑榜]Top100 12月26日周四,豆瓣电影口碑榜公布了2013第52周榜单结果,这也是今年最后一周口碑榜更新.根据这一年的上榜条目,我们整理了口碑榜上最受好评的前100部影片, ...

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

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

  4. 2020豆瓣电影首页热门电影+热门电视剧 API

    豆瓣电影首页API 最近热门电影 最近热门电视剧 API 名称 requestURL baseURL https://movie.douban.com/j/ 名称 requestURL 最近热门电影 ...

  5. 使用selenium实现豆瓣电影信息的自动化搜索

    因为之前写了一段时间的python,但是因为某些其它的事情导致没写博客,所以趁着新任务还是有些时间做,赶紧把之前学习到的.了解到的东西整理一下,也是比较基础的东西,一是怕自己遗忘:二来则是给没用过se ...

  6. 豆瓣电影:TOP250榜单爬虫

    豆瓣电影 Top 250 (douban.com) #导包 import requests from bs4 import BeautifulSoup import pandas as pd 第一步: ...

  7. python爬虫爬取豆瓣电影排行榜并通过pandas保存到Excel文件当中

    我们的需求是利用python爬虫爬取豆瓣电影排行榜数据,并将数据通过pandas保存到Excel文件当中(步骤详细) 我们用到的第三方库如下所示: import requests import pan ...

  8. selenium自动化测试实战案例哔哩哔哩信息至Excel

    文章目录 前言 明确目标 最终效果 开发环境 思路分析 实现步骤 运行效果 以下是全部代码 前言 最近在B站学习知识,于是看完了视频就想着练习一下巩固一下知识,就地取材的做了个B站selenium小项 ...

  9. Python网络爬虫实战12:爬取豆瓣电影中热门电影数据

    代码实例 # coding:utf8 import json import requests from bs4 import BeautifulSoup import openpyxlwb = ope ...

最新文章

  1. Android JetPack ViewModel 源码解析
  2. js 时间戳转为日期格式
  3. onclick函数的导包问题
  4. 【Python基础】推荐几个神器来拯救奇丑无比的python代码
  5. 62 | 测一测 | 这些软件测试题目,你都掌握了吗?
  6. imx226_相机选型器
  7. 两个音轨合并_两个双音轨mkv视频合并保持原双音轨不变 MKV怎么合并视频,合并之后仍保留MKV的双音轨...
  8. 做数据中心,腾讯是认真的!
  9. hive 配置 mysql时的问题(Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D)
  10. 3.nginx 的基本配置与优化
  11. 阶段3 2.Spring_03.Spring的 IOC 和 DI_6 spring中bean的细节之三种创建Bean对象的方式
  12. 【物理应用】基于matlab Q学习无线体域网路由方法【含Matlab源码 264期】
  13. 黑群晖nas安装保姆级教程
  14. 通用高拍仪软件_动态展示和教学 良田YL1050AF高拍仪评测
  15. Idea 破解版下载指南
  16. seo和网站服务器有什么区别,网站为什么要做seo,seo与sem有什么区别
  17. java+mysql ssm基于协同过滤算法的演唱会平台
  18. 部署搭建DNS服务器
  19. MySQL中date、datetime、timestamp、time、year的区别
  20. oracle apex global,Oracle Apex 实用笔记系列 1 - Oracle Apex 调试技巧

热门文章

  1. 计算机图纸学绘制钻石图案,ai怎么绘制钻石图形? AI画钻石标志的教程
  2. 深度优先搜索与岛屿问题
  3. 怎样共享windows和linux之间的文件
  4. 解决iserver服务器本地无法访问的问题
  5. MTK_Ralink_ApSoc_SDK编译总结
  6. proteus 02 555定时器脉冲电路
  7. 学习Python语言,需要先了解一下Python有什么优缺点?
  8. android按钮点击音效
  9. .net Applcation FrameWork
  10. Modbus ASCII LRC生成