由于我技术水平,磨磨唧唧很长时间终于弄出来了,在整理的时候思考了下,可能是我当时太关注打印出来的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中文读取填充到网页相关推荐

  1. python excel数据处理功能模块_Python 之Excel 数据处理

    Python 之 Excel 数据处理 一.背景. 运维工作中,可能会遇到同事或者技术领导给Excel 数据进行,数据抽取汇总或者进行运维自动化提供元数据使用,针对以上场景我们需要进行python 处 ...

  2. python爬取京东评论分析_Python爬取京东商品评价(动态网页的爬取)

    首先打开京东的任意几个商品页面,并观察URL,可以发现都是https://item.jd.com/+数字+.htm的格式,而且数字也随着商品的改变而改变,基本上可以确定这串数字是商品ID 之后我们找到 ...

  3. python对excel增删改查_Python之Excel 优雅操作手法 精选

    前言 一直想写这一篇,却又一直被事情拖着. 我带的一个项目团队正好进行到这一块儿了,正好,将这事儿办了,以后要用的时候也不用到处找. 半点不求人. 慢慢看,优雅的操作都在后头 Tips:当下2020年 ...

  4. python可以读取excel文档吗_python打开excel文件【python读取excel文件如何进行】

    Python语言打开Excel文件? 一.安装xlrd模 到python官网下http://pypi.python.org/pypi/xlrd模块安装,前已经安装python 环境. 二.使用介 1. ...

  5. python已打开页面获取信息_python+selenium实现自动登录网页获取信息(一)

    我用的是一个教师继续教育的网站,进行演示和模拟,网站:http://cas.study.yanxiu.jsyxsq.com/auth/login?service=http%3A%2F%2Fwww.17 ...

  6. python打开手机网页_Python selenium 用chrome的Mobile emulation模拟手机浏览器测试手机网页...

    网页模拟手机打开网页 chrome的MobileEmulation实现手机网页自动化测试 第一种方法(已存在的主流设备) # -*- coding: utf-8 -*- from selenium i ...

  7. python调用js文件报错_python - selenium 运行网页中js脚本报错,提示未定义

    问 题 问题1 selenium 运行网易中js脚本报错提示未定义 报错提示如下: driver.execute_script("javascript:amsInit(62800,30315 ...

  8. python读取excel数据并饼图_python生成excel表格以及饼图 示例源码

    [实例简介] [实例截图] [核心代码] # -*- coding: utf-8 -*- from openpyxl import load_workbook from openpyxl import ...

  9. python爬虫动态加载页面_Python+Selenium爬取动态加载页面(2)

    注: 上一篇<Python+Selenium爬取动态加载页面(1)>讲了基本地如何获取动态页面的数据,这里再讲一个稍微复杂一点的数据获取全国水雨情网.数据的获取过程跟人手动获取过程类似,所 ...

最新文章

  1. Unix/Linux/Mac os下 文件互传
  2. matplotlib.pyplot中add_subplot方法参数的含义
  3. Spring Cloud Gateway重试机制
  4. iOS设计模式 - 备忘录
  5. 如何用最短时间搞定酷炫可视化大屏?这款工具值得一看
  6. 微盟616零售购物节观察:私域流量增值是社交生态的真实价值
  7. php 函数 数组 难学,php 数组的常用函数
  8. tensorflow玻尔兹曼机_资源 | 10种深度学习算法的TensorFlow实现
  9. js实现放大镜的效果
  10. jest自动化测试遇到的一些报错信息及解决方案
  11. 看上90亿的当当,海航的眼光是极好的
  12. TensorFlow 学习(九)—— 初始化函数(概率分布函数 api、常数生成函数)
  13. 8000401a 错误及解决办法
  14. win10系统服务器怎样设置密码,win10系统的电脑如何给普通文件夹设置密码
  15. 导致无法查看隐藏文件的病毒处理
  16. (推荐)彻底理解ROC曲线和AUC值
  17. win7java浏览器崩溃_win7系统浏览器页面一直崩溃的修复方法
  18. apk在android12设备无法安装(兼容android 12或更高版本)
  19. 玩转全球最大同性交友网站--- 开源社区GitHub
  20. Android studio入门到精通实例实验

热门文章

  1. 20211108 det(AB)=det(A)det(B)
  2. 打造0代码全自动GridView-天具神力
  3. LeetCode 110. 平衡二叉树(Balanced Binary Tree) 15
  4. linux 初学体验 20155317 王新玮
  5. 三角形问题——junit test 尝试
  6. 多线程,多进程选择(了解)
  7. JavaWeb_检查用户是否登录的过滤器
  8. git - 搭建最简单的git server
  9. [2018/11/14] 学习的思考
  10. 【JUnit 报错】 method initializationerror not found:JUnit4单元测试报错问题