python+selenium获取分页表格数据并导入excel中

Selenium学习三——利用Python爬取网页表格数据并存到excel 利用Python爬取网页表格数据并存到excel 1、具体要求: 读取教务系统上自己的成绩单,并保存到本地的excel中 2、技术要求: 利用Selenium+Python获取网页,自动登陆并操作到成绩单页面 通过xlwt模块,将表格保存到本地excel (其中xlwt模块通过cmd打开命令框,输入pip install xlwt下载) 3、主要代码: #创 阅读详情

1.准备工作:
安装环境:python3,selenium库,xlsxwriter库,chorme浏览器,chormedriver(具体安装步骤自行百度)
2.开始编写代码
首先导入我们必须要的库:

from selenium import webdriver
import xlsxwriter
from selenium.webdriver.common.keys import Keys

接着编写一个打开网址的方法:

def OpenChorme(url):
    chorm_drive = r'E:\python\chromedriver.exe' # 此处是我chormedriver放的位置
    driver = webdriver.Chrome(executable_path=chorm_drive)
    driver.get(url) # url你选择要打开的网址
    return driver

我要打开的一个网站是我们这里内网的一个网址,就不给出来了。我们要抓取网站上的表格数据如下图:在这里插入图片描述
通过chorme的开发者工具,我们可以定位到该table标签的 id 为 list在这里插入图片描述然后再查看其包含的子标签tbody>tr在这里插入图片描述
其中,每一行tr标签又包含列td在这里插入图片描述每一行tr标签里的子标签td就包含着我们需要抓取的数据,那么我们就可以通过selenium的定位方法去定位标签,获取标签里的数据。
接下来,我们写一个获取所有表格数据的方法:

def find_all_data(driver):
    dat = []
    lst = []
    # 通过css选择器找到table的位置
    element = driver.find_element_by_css_selector('#list')
    # 找到所有table下面所有的tr
     tr_contents = element.find_elements_by_tag_name('tr')
     for tr in tr_contents:
     	 # 遍历查找每个tr下面的td
         for td in tr.find_elements_by_tag_name('td'):
         	 # 将每个td的内容存储到lst中
             lst.append(td.text)
         dat.append(lst)
         lst = []
    return dat

上面的代码我们只获取到了当页的数据我们要获取分页的数据,那么就应该为上段代码做些修改。
在这里插入图片描述通过调试工具我们得到了页码输入框的位置,在这里,该input框没有id,因此我们可以通过它的XPath来定位标签,我们在控制台选中该标签后,鼠标单击右键,然后选中 copy->copy XPath。就可以得到了,下一步修改find_all_data()方法。

# page:总共有多少页
def find_all_data(driver,page):
    dat = []
    lst = []
    for i in range(1, page + 1):
    	# 获取分页输入框标签的定位
        inputpage = driver.find_element_by_xpath("//*[@id='pager_center']/table/tbody/tr/td[2]/input")
        # 首先清除输入框里面的数字
        inputpage.clear()
        # 然后发送页码,我们为了方便,就把第一页也写在了里面
        inputpage.send_keys(str(i))
        # 最后模拟键盘点击Enter键
        inputpage.send_keys(Keys.ENTER)
        # 为了是数据刷新出来,做了一个小小的死延时处理
        time.sleep(3)
        element = driver.find_element_by_css_selector('#list')
        tr_contents = element.find_elements_by_tag_name('tr')
        for tr in tr_contents:
            for td in tr.find_elements_by_tag_name('td'):
                lst.append(td.text)
            dat.append(lst)
            lst = []
    return dat

最后写一个main函数测试一下:

if __name__ == '__main__':
    driver = OpenChorme('此处为你自己的网址')
    # 不用管,这是我登录输入账号、密码和验证码的过程
    local = (656, 346, 765, 385)
    # 登录方法
    Login_succ(driver,'admin','admin',local)
    time.sleep(5)
    # 获取到前三页的数据
    lst = find_all_data(driver,3)
    time.sleep(2)
    driver.close()
    # 创建一个表格
    workbook = xlsxwriter.Workbook('D:/Demo1.xlsx')
    # 添加一个sheet
    worksheet = workbook.add_worksheet()
    # 获取表格的行、列
    coloum = len(lst)
    row = len(lst[0])
    print(coloum,row)
    for i in range(0,coloum):
        for j in range(0,row):
            text = lst[i][j]
            # 循环写入表格内
            worksheet.write(i,j,text)
    workbook.close()

结果如下:

爬虫获取多级页面数据丨Python基础实战系列(4) 有些时候,只抓取一个单级页面是无法完成数据提取的。本节讲解如何使用爬虫抓取多级页面的数据,涉及到正则表达式。【阿星建议】在学Python爬虫?建议你戳进来学习一下~ 阅读详情

相关推荐

Python爬取网页数据并导入表格

我想将http://wsb.wuhan.gov.cn/html/friendly/201602/t20160203_45633.shtml这个网页里的表格数据用python爬取出来,并导入CSV表格文件,但是总是出错,求大神教我,代码如下 import requests import time import random import socket import http.client fro...

ZZG12的博客 3713

Python读取网页表格数据

在网上看到一个案例,但自己操作起来有一些问题,如SSL认证、CSV文件中文乱码、网站还需翻页,我通过chatGPT及baidu将代码进行了优化。供参考。他山之时,可以攻玉。希望通过持续不断的学习与实践,我的python水平可以提升我的工作效率。

little_super的博客 815

使用 Selenium 自动化爬取 NBA 球员数据并保存到 Excel

随着大数据时代的来临,数据获取变得尤为重要,如何高效地从网站中提取有用数据是一个热门话题。本文将详细讲解如何使用 Python 的Selenium库自动化爬取 NBA 球员的统计数据,并将数据保存到 Excel 文件中。通过这一实战案例,初学者可以学习到网页自动化、数据抓取、分页处理以及如何保存数据到 Excel 文件。

qq_63021160的博客 2437

python爬虫实战——爬取猫眼电影TOP100并导入excel表

系列文章目录 python爬虫实战——爬取淘宝商品信息并导入EXCEL表格(超详细). python多线程爬取壁纸 妈妈再也不担心我没壁纸了!. python爬虫爬取虎牙数据(简单利用requests库以及Beautifulsoup). python爬虫之爬取壁纸(新手入门级). 文章目录系列文章目录前言一、解析URL组成二、利用正则表达式获取所需的数据2.数据的优化三、使用selenium模拟网页刷新四、总体的函数和代码编写1.获取html内容2.正则表达式获取信息3.获取每页的网页链接4.将信息写入ex

Six23333的博客 3929

Selenium学习四——利用Python爬取网页多个页面的表格数据并存到已有的excel中

利用Python爬取网页多个页面的表格数据并存到已有的excel中 1、具体要求 获取牛客网->题库->在线编程->剑指Offer网页,获取表格中的全部题目,保存到本地excel中 2、技术要求 利用Selenium+Python获取网页,操作到table页面 通过xlwt、xlrd、xlutils模块,将表格保存到本地excel xlwt:写入

yxStory的博客 1万+

python+selenium自动化测试中如何获取Excel文件中的参数并执行

python+selenium自动化测试中如何获取Excel文件中的参数并执行 在自动化测试中,有常见的3中测试框架:模块化测试框架、关键字驱动测试框架、数据驱动测试框架。 数据驱动说白了就是数据的参数化,因为输入数据的不同获得不同的输出结果。不管把数据放在数组,字典或者外部的文件(excel,csv、txt、xml),目的都是为了让数据和操作分离。 本文主要以测试用例的数据存放在Excel文件中...

测试开发之路BeeTester 1286

python3+selenium 抓取网页多个表格数据,并导入execl中

1. 首先我需要抓取数据的网址是: "https://mtj.baidu.com/data/mobile/device" 2. 打开浏览器,输入网址,是这个页面 3. 我想要抓取,品牌,机型,系统,分辨率,联网右边的表格 4. 使用 pycharm IDE,下载 selenium模块                         pip install selenium(请在py...

FengNingXueChen的博客 4477

Python+selenium 写入数据到excel文件

安装xlwt和xlutils xlwt用来写数据到excel文件 xlutils复制excel中旧表数据到新表 pip install xlwt pip install xlutils 实现思路 1. 写入数据的excel文件不存在通过xlwt创建文件和定义excel表名 2. 写入数据的excel文件存在则通过xlrd打开并定位第一个表并获取其数据总行数 3. 通过xlutils.copy的copy方法复制旧数据并重新保存到新表 4. 获取转化后工作簿...

SitVen 2226

Python—用selenium轻松获取网页内表格内容并写入数据库

以前用Python获取网页内容是很繁琐的,先requests.get网页源代码,然后用re的正则匹配各种折腾,才能把表格读取出来,而且调试成本很高,表格一换就失效了。最近学习了selenium,发现用来获取网页内容简直是如鱼得水,代码如下: from selenium import webdriver import pandas as pd driver=webdriver.Chrome("chromedrive.exe") #谷歌浏览器打开 driver

chaodaibing的博客 9133

如何使用python批量导入excel表格上数据实现自动化办公?

问题: 部分下拉框元素使用浏览器xpath不能直接定位,由于是float动态类型参数,不是statics静态类型参数,导致定位不了而不能选择? 解决方法: 直接找到该目录上级父类(包括继承类),标志定位时有“event”字样,该类用xpath可以定位准确 如图情况: 参考代码: from selenium import webdriver driver = webdriver.Firefox() from selenium.webdriver.common.keys import Keys from s

weixin_45430563的博客 1383

python+selenium:ActionChains定位鼠标悬停后才显示的内容,并将爬取的信息保存到excel表格中(豆瓣)

需求: 豆瓣电影,鼠标停在电影图片上,会显示电影名称、评分、演员、播放状态、电影短评等信息,如何定位鼠标悬停后才显示的内容呢?如何将获取的内容保存到excel中呢? #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : Lan.lei from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains impo

weixin_38806650的博客 3286

python从excel中读取数据并填写网页表格

话不多说,先直接上代码 import time from selenium import webdriver from selenium.webdriver.common.keys import Keys import openpyxl wb = openpyxl.load_workbook('文件路径') sh = wb['Sheet1']//工作簿名称 driver = webdriv...

rglkt的博客 1万+

开发框架Furion之WebApi+SqlSugar (一)

MyFurion.Model项目中,通过Nuget添加Furion、Furion.Extras.DatabaseAccessor.SqlSugar、Furion.Extras.ObjectMapper.Mapster、SqlSugarCore,同时添加对项目MyFurion.Unility的引用。在MyFurion.Start项目中,通过Nuget添加 AspNetCoreRateLimit、System.Linq.Dynamic.Core,同时添加对项目MyFurion.Application的引用。

liwan09的博客 1万+

python爬取表格数据匹配_爬取表格类网站数据并保存为excel文件

本文转载自以下网站:50 行代码爬取东方财富网上市公司 10 年近百万行财务报表数据 https://www.makcyun.top/web_scraping_withpython6.html主要学习的地方:1.分析网站的ajax请求信息2.构造参数3.发起请求后处理获得的数据4.保存表格重点:分析表格类网站的ajax请求,以及如何保存这类信息(关于表格方面的)通过分析网址 JavaScript ...

weixin_39566578的博客 1402

Springboot + vue 实现导出word

Springboot + vue 实现导出word 后端代码 使用word先创建好已知的模板 使用word工具另存为.xml格式的文件 使用freemarker ftl模板 将修改后的xml文件复制到开发工具中,将文件后缀修改为ftl文件,并且将里面的动态值使用${}包裹例如:${zyjn} word工具类 /*** * * Project Name:maventest * <p>生成word工具类<br> * * @ClassName: WordUtil *

qq_45542373的博客 2895

家用电器维修必备:手把手教你用双向可控硅改造单相电机调速(附电路图)

本文提供了一份详细的家用电器维修指南,手把手教你如何利用双向可控硅为核心元件,为单相交流电机(如风扇、排气扇)实现平滑的无级调速改造。内容涵盖核心原理、安全须知、元件选型(如BT136、DB3)、电路图解析、分步搭建教程以及常见故障排查方法,旨在帮助维修爱好者和DIY用户安全、成功地完成这一实用且富有成就感的项目。

read5的博客 838

python+selenium获取excel表格数据

这个是工具类 import xlrd class ExcelUtil(): def __init__(self, excelPath, sheetName): #def __init__(self, excelPath, sheetName): self.data = xlrd.open_workbook(excelPath) self.table = self.data.sheet_by_name(sheetName) try:

weixin_45507672的博客 1347

SIwave仿真手册——信号完整性仿真之S参数的提取(二)

上一篇简单了讲述了软件的各个操作界面,本次博客更新关于的仿真,因为第二章完整的内容比较多,所以分成好几篇博客进行分享。

luohuo9844的博客 1万+

python爬虫之selenium+BeautifulSoup库,爬取搜索内容并保存excel

前面文章已经介绍了selenium库使用,及浏览器提取信息相关方法。python爬虫之selenium库现在目标要求,用爬虫通过浏览器,搜索关键词,将搜索到的视频信息存储在excel表中。里面有button_next 为跳转下一页的功能,之所有不用By.CLASS_NAME定位。看html代码可知 下一页 ="

2485

用 SAP CDS View 和 Fiori Elements 快速打造 CRM Service Order 应用──十分钟跑通从数据模型到上线的全流程

通过CDS 视图 + Fiori Elements的组合,我们得以在极短时间内把传统 CRM Service Order 场景迁移到现代化的 Fiori 界面,而且代码量极小、可维护性高。若后续需要离线能力,可考虑将同一 OData 服务暴露给 Mobile Services,再配合 MDK 或 UI5 Mobile Toolkit;若要支持复杂审批流,则可以在同一 Launchpad 内嵌入 Process Visibility Dashboard,实现端到端可视化。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 392

Buck电源设计常见的一些问题(五)MOS管振荡抑制方法(三)

关于开关节点振荡的产生机制和抑制问题,总结了三种抑制方法。第一种方法是利用输入端的高频去耦电容;第二种方法是设计 RC 缓冲电路;第三种方法是优化自举电路的串联电阻。以上三种方法均通过实验加以验证,对开关节点振荡具有很好的抑制作用。应该综合同步 Buck 变换器的各项指标权衡设计。

小幽余生不加糖 1633

Python+Selenium基础篇之17 - 爬取的数据导出excel表格

这章我们介绍一下自动化获取到的数据如何导出excel表格 相关代码如下: # coding=utf-8 import xlwt import time from selenium import webdriver driver = webdriver.Chrome() driver.get('https://www.baidu.com/') time.sleep(1) workbook = xlwt.Workbook(encoding='utf-8') #创建workbook对象 worksheet =

伟爵社的博客 3006

Cesium+Vue3教程(003):基于Vue3的Cesium自定义地图和地图叠加

在 Cesium 中,是用于加载地表影像图层的核心接口。通过它,您可以将各种地图服务(如卫星影像、街道地图、自定义瓦片等)加载到 Cesium 的地球上。Cesium 提供了多个内置的。

WwLK123的博客 635

Python selenium爬取知乎用户信息存入Excel表格

知乎介绍: 知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。准确地讲,知乎更像一个论坛:用户围绕着某一感兴趣的话题进行相关的讨论,同时可以关注兴趣一致的人。对于概念性的解释,网络百科几乎涵盖了你所有的疑问;但是对于发散思维的整合,却是知乎的一大特色。2017年11月8日,知乎入选时代影响力·中国商业案例TOP30。 知乎官网: ...

阿优乐扬的博客 1716

为什么一个“时间片”能折腾 Linux 十年?

时间片扩展不是抢占调度器的控制权,也不是提升优先级。在“非常短暂、非常确定”的用户态临界区内,避免线程被不必要地抢占。用户态自旋锁(user-space spinlock)无系统调用的极短临界区高并发、低延迟的数据结构操作RSEQ(Restartable Sequences)保护区间一旦线程在临界区被抢占,系统整体性能反而下降。线程 A 拿着一个用户态锁线程 B 被调度上来,开始自旋等这个锁但 A 因为时间片用完,被调度器切走CPU 白白空转,所有线程都在浪费时间。

网络技术联盟站 254

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

下一篇: python+selenium+百度OCR 验证码识别登录
杨佳啊
博客等级 码龄9年 4粉丝 20原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值