python读取excel送到网页_python+selenium excel中文读取填充到网页
由于我技术水平,磨磨唧唧很长时间终于弄出来了,在整理的时候思考了下,可能是我当时太关注打印出来的list了 ,list里不能显示中文,我就初以为我总是错了。
附上表格一部分
#coding:utf-8
importxlrddefopen_excel(file):try:
data=xlrd.open_workbook(file)returndataexceptException as e:print(str(e))def excel_table_byindex(file,colnameindex = 0,by_index=0):
data=open_excel(file)
table=data.sheets()[by_index]
nrows=table.nrows#行
colnames =table.row_values(colnameindex)#列内容
list=[]for rownum in range(1, nrows):
row=table.row_values(rownum)ifrow:
app={}for i inrange(len(colnames)):
s=row[i]#if isinstance(s, unicode):
#s = row[i].encode("utf-8")
print "每一个", s
app[colnames[i]]=s
list.append(app)printrowprintlistreturnlist
listdata=excel_table_byindex("E:\py\\alwaystry\sign_up.xlsx",0)
在开头加了#coding:utf-8,就已经是utf-8格式的了,所以能处理中文。
打印print"每一个", s 的时候,打印出来是 每一个 二毛a
printrow 打印出来是[u'\u4e8c\u6bdba',...
printlist 打印出来就是[{u'nickname': u'\u4e8c\u6bdba'..., 所有的行数据。
当初的我只看到了Unicode编码就以为他是打印不了中文了,其实是list不能显示。现在想来,还是太嫩
在漫长的探索中,我知道了str和Unicode
(我看着觉得不错的网址http://wklken.me/posts/2013/08/31/python-extra-coding-intro.html)
反正就是
str -> decode('str的编码格式') -> unicode
unicode -> encode('你要的格式') -> str
要查看编码格式,就print chardet.detect(listdata[i]['nickname']),判断字符编码格式当然还是要import chardet的
他有时候会报ValueError: Expected a bytes object, not a unicode object错,那也就知道他是什么编码格式了。
还是这样吧,直接打印格式:print type(listdata[i]['realname'])打印输出,说明人家已经是unicode,那你就把chardet.detect()删掉就好。
UTF-8是Unicode的实现方式之一/utf8是对unicode字符集进行编码的一种编码方式。(当时做笔记记下来的,我觉得这两句话还是蛮好理解的)
如果,很不慎,你走到了和我当初一样的境地,早早的把encode,就是注释掉的那两句。
提示UnicodeDecodeError: 'utf8' codec can't decode byte 0xe4 in position 0: unexpected end of data等等,不妨尝试一下decode。如果是下拉框匹配的情况,可以先decode再encode试试,下面代码最后一行。
整体大概代码如下
#输入网址
address = raw_input('Enter location:')if len(address) < 1:print "error"url=address#放你的配置文件
profile_dir = r"C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\5cmfbcqp.default"profile=webdriver.FirefoxProfile(profile_dir)
driver=webdriver.Firefox(profile)#打开excel
defopen_excel():try:
data=xlrd.open_workbook(file)returndataexceptException as e:print(str(e))def excel_table_byindex(file,colnameindex = 0,by_index=0):
data=open_excel(file)
table=data.sheets()[by_index]
nrows=table.nrows#行
colnames =table.row_values(colnameindex)#列内容
list=[]for rownum in range(1, nrows):
row=table.row_values(rownum)ifrow:
app={}for i inrange(len(colnames)):
s =row[i]ifisinstance(s, unicode):
s= row[i].encode("utf-8")prints
app[colnames[i]] =s
list.append(app)print(list)returnlist#通过css判断是否存在,你也可以用if else
defjudgewithcss(css):try:
driver.find_element_by_css_selector(css)except:returnFalsereturnTrue
listdata=excel_table_byindex("E:\sign_up.xlsx",0)if(len(listdata)<0):assert 0,u"数据异常"
for i inrange(0, len(listdata)):
driver.get(url)#昵称,这是个input
if judgewithcss("#nickname") ==True:
nickname= driver.find_element_by_id("nickname")
nickname.clear()print chardet.detect(listdata[i]['nickname'])
nickname.send_keys(listdata[i]['nickname'].decode("utf-8"))#血型,这是个select
if judgewithcss("#blood") ==True:
blood= driver.find_element_by_id("blood")#以下3种也能判断出格式
#print isinstance(listdata[i]['blood'], unicode)
#print isinstance(listdata[i]['blood'], str)
#print type(listdata[i]['blood'])
print chardet.detect(listdata[i]['blood'])
Select(blood).select_by_value(listdata[i]['blood'].decode("windows-1252").encode("windows-1252"))
python读取excel送到网页_python+selenium excel中文读取填充到网页相关推荐
- python excel数据处理功能模块_Python 之Excel 数据处理
Python 之 Excel 数据处理 一.背景. 运维工作中,可能会遇到同事或者技术领导给Excel 数据进行,数据抽取汇总或者进行运维自动化提供元数据使用,针对以上场景我们需要进行python 处 ...
- python爬取京东评论分析_Python爬取京东商品评价(动态网页的爬取)
首先打开京东的任意几个商品页面,并观察URL,可以发现都是https://item.jd.com/+数字+.htm的格式,而且数字也随着商品的改变而改变,基本上可以确定这串数字是商品ID 之后我们找到 ...
- python对excel增删改查_Python之Excel 优雅操作手法 精选
前言 一直想写这一篇,却又一直被事情拖着. 我带的一个项目团队正好进行到这一块儿了,正好,将这事儿办了,以后要用的时候也不用到处找. 半点不求人. 慢慢看,优雅的操作都在后头 Tips:当下2020年 ...
- python可以读取excel文档吗_python打开excel文件【python读取excel文件如何进行】
Python语言打开Excel文件? 一.安装xlrd模 到python官网下http://pypi.python.org/pypi/xlrd模块安装,前已经安装python 环境. 二.使用介 1. ...
- python已打开页面获取信息_python+selenium实现自动登录网页获取信息(一)
我用的是一个教师继续教育的网站,进行演示和模拟,网站:http://cas.study.yanxiu.jsyxsq.com/auth/login?service=http%3A%2F%2Fwww.17 ...
- python打开手机网页_Python selenium 用chrome的Mobile emulation模拟手机浏览器测试手机网页...
网页模拟手机打开网页 chrome的MobileEmulation实现手机网页自动化测试 第一种方法(已存在的主流设备) # -*- coding: utf-8 -*- from selenium i ...
- python调用js文件报错_python - selenium 运行网页中js脚本报错,提示未定义
问 题 问题1 selenium 运行网易中js脚本报错提示未定义 报错提示如下: driver.execute_script("javascript:amsInit(62800,30315 ...
- python读取excel数据并饼图_python生成excel表格以及饼图 示例源码
[实例简介] [实例截图] [核心代码] # -*- coding: utf-8 -*- from openpyxl import load_workbook from openpyxl import ...
- python爬虫动态加载页面_Python+Selenium爬取动态加载页面(2)
注: 上一篇<Python+Selenium爬取动态加载页面(1)>讲了基本地如何获取动态页面的数据,这里再讲一个稍微复杂一点的数据获取全国水雨情网.数据的获取过程跟人手动获取过程类似,所 ...
最新文章
- Unix/Linux/Mac os下 文件互传
- matplotlib.pyplot中add_subplot方法参数的含义
- Spring Cloud Gateway重试机制
- iOS设计模式 - 备忘录
- 如何用最短时间搞定酷炫可视化大屏?这款工具值得一看
- 微盟616零售购物节观察:私域流量增值是社交生态的真实价值
- php 函数 数组 难学,php 数组的常用函数
- tensorflow玻尔兹曼机_资源 | 10种深度学习算法的TensorFlow实现
- js实现放大镜的效果
- jest自动化测试遇到的一些报错信息及解决方案
- 看上90亿的当当,海航的眼光是极好的
- TensorFlow 学习(九)—— 初始化函数(概率分布函数 api、常数生成函数)
- 8000401a 错误及解决办法
- win10系统服务器怎样设置密码,win10系统的电脑如何给普通文件夹设置密码
- 导致无法查看隐藏文件的病毒处理
- (推荐)彻底理解ROC曲线和AUC值
- win7java浏览器崩溃_win7系统浏览器页面一直崩溃的修复方法
- apk在android12设备无法安装(兼容android 12或更高版本)
- 玩转全球最大同性交友网站--- 开源社区GitHub
- Android studio入门到精通实例实验
热门文章
- 20211108 det(AB)=det(A)det(B)
- 打造0代码全自动GridView-天具神力
- LeetCode 110. 平衡二叉树(Balanced Binary Tree) 15
- linux 初学体验 20155317 王新玮
- 三角形问题——junit test 尝试
- 多线程,多进程选择(了解)
- JavaWeb_检查用户是否登录的过滤器
- git - 搭建最简单的git server
- [2018/11/14] 学习的思考
- 【JUnit 报错】 method initializationerror not found:JUnit4单元测试报错问题