用python存excel到网页


下载python-3.6.5,安装,打开cmd,进入安装路径,C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Scripts>(没有就搜索pip3.exe,进入程序路径;)

1,pip3 install wheel(前提是安装了pip) 
2,pip3 install xlrd
3,pip3 install openpyxl
4,pip install numpy

下载xlutils-2.0.0-py2.py3-none-any.whl,安装
pip install xlutils-2.0.0-py2.py3-none-any.whl
 

第一段程序:将excel转换为json数据;

from xlrd import open_workbook
from xlutils.copy import copy

import xlrd

dic2={}

dic={}

rb = open_workbook('2.xls')
#通过sheet_by_index()获取的sheet没有write()方法
rs = rb.sheet_by_index(0)
wb = copy(rb)
nr = rs.nrows
nc = rs.ncols
ws = wb.get_sheet(0)

for i in range(1, nr):
  
#########################################################################################################
  INDEX=rs.cell_value(i,0)
#########################################################################################################
  if INDEX not in range(1, 135):
    continue
  #print(INDEX)
#########################################################################################################
  psscor=rs.cell_value(i,24)
  qmscor=rs.cell_value(i,25)
  name=rs.cell_value(i,1)
  if isinstance(name,float):
    name=int(name)
  else:
    continue
  #array2=[0,0]
  if isinstance(qmscor,float):
    score=int(qmscor)
  else:
    continue


  if isinstance(psscor,float):
    score2=int(psscor)
  else:
    continue
#########################################################################################################
  if score2 not in range(1, 100):
    continue

  #print(name, end=" ")
  dic2[name]=score
  dic[name]=score2
  #if name in dic:
#########################################################################################################
   # ws.write(i, 8, dic[name])
    #dic[name]=

#cell_value = rs.cell_value(3,0)
#print(cell_value)
print("qm\n")
print(dic2)
print("\n")
print(len(dic2))

print("ps\n")
print(dic)
print("\n")
print(len(dic))


第二段程序,打开chrome,浏览器,右键进入console,输入如下程序完成:


(function () 


//ps
var dic=
{161031023: 76, 161031075: 78, 161031089: 76,  161052040: 76}
//qm
var dic2=
{161031023: 63, 161031075: 48, 161031089: 60, 54, 171035136: 91, 171035137: 81, 161052040: 66}


var rows = document.getElementById("DataGrid1").rows.length; 

var i=1;
while(i<rows+1)
{

var mytable = document.getElementById("DataGrid1").rows[i].cells[1].innerHTML;  

if(dic[mytable]!=null)

{
hu=i+1;

var vl=dic[mytable];

var ss= "DataGrid1__ctl"+hu+"_ps";

//alert(ss);
var r=document.getElementById(ss);
 
r.value=vl;


hu2=i+1;

var vl2=dic2[mytable];

var ss2= "DataGrid1__ctl"+hu+"_qm";

//alert(ss);
var r2=document.getElementById(ss2);
 
r2.value=vl2;
}

i=i+1;

}


}

)()

### 回答1: 可以使用Python的requests和BeautifulSoup库来爬取网页表格数据,并使用pandas库将数据储为Excel文件。 具体步骤如下: 1. 使用requests库发送HTTP请求获取网页内容。 2. 使用BeautifulSoup库解析网页内容,找到表格数据所在的HTML标签。 3. 使用pandas库将表格数据转换为DataFrame对象。 4. 使用pandas库将DataFrame对象保Excel文件。 示例代码如下: ```python import requests from bs4 import BeautifulSoup import pandas as pd # 发送HTTP请求获取网页内容 url = 'http://example.com/table.html' response = requests.get(url) # 解析网页内容,找到表格数据所在的HTML标签 soup = BeautifulSoup(response.content, 'html.parser') table = soup.find('table') # 将表格数据转换为DataFrame对象 df = pd.read_html(str(table))[0] # 将DataFrame对象保Excel文件 df.to_excel('table.xlsx', index=False) ``` 其中,`url`为要爬取的网页地址,`table`为表格数据所在的HTML标签,`df`为转换后的DataFrame对象,`table.xlsx`为保Excel文件名。 ### 回答2: Python是一种非常强大的编程语言,它在数据分析、机器学习和爬虫等领域表现得尤为突出。用Python来爬取网页上的表格数据并储为excel表格是一个非常常见的应用场景。 Python有许多库可以用来进行网络爬取,其中比较流行的是Requests和Beautiful Soup。Requests库用于向网站发送HTTP请求,Beautiful Soup用于解析HTML结构,将数据进行提取。在这个过程中,还需要用到pandas库,它可以让我们以数据框的形式保数据,并轻松地输出为excel文件。 实现步骤如下: 1. 引入必要的库 ```python import requests from bs4 import BeautifulSoup import pandas as pd ``` 2. 获取网页内容 ```python url = 'http://www.example.com' # 网页地址 response = requests.get(url) # 获取网页 soup = BeautifulSoup(response.content, 'html.parser') # 解析网页 ``` 3. 找到目标表格 在Beautiful Soup中,我们可以使用Tag、Name、Attributes和CSS选择器等选择器来定位目标元素。这里我们假设表格在网页上是一个table标签,可以通过以下代码进行选择: ```python table = soup.find('table') # 找到表格 ``` 4. 解析表格内容 在找到表格后,我们可以使用Beautiful Soup的方法,将表格内容逐行读取,并保在一个二维的列表中。这里我们假设表头和表格数据分别在thead和tbody标签内,可以使用以下代码来进行解析: ```python headers = [] #表头 rows = [] #表格数据 # 解析表头 for th in table.thead.find_all('th'): headers.append(th.text) # 解析表格数据 for tr in table.tbody.find_all('tr'): row = [] for td in tr.find_all('td'): row.append(td.text) rows.append(row) ``` 5. 将数据储到excel中 使用pandas库,可以将数据以数据框的形式储,并使用to_excel()方法将数据保excel文件中。 ```python df = pd.DataFrame(rows, columns=headers) # 创建一个数据框 df.to_excel('data.xlsx', index=False) # 保excel文件,不包括索引列 ``` 以上是使用Python爬取网页表格数据Excel的基本步骤,根据实际情况,可能需要根据不同的表格结构和数据类型进行一些调整和改进。总体上,Python可以极大地简化我们从网页上提取数据的过程,为我们的数据处理和分析工作提供了高效便捷的支持。 ### 回答3: Python是一种广泛使用的编程语言,也是数据科学领域中最常用的语言之一,它拥有相当丰富和实用的爬虫库可以方便的实现数据采集。随着现在各个网站对数据的重视和数据交互的日益普及,进行网页数据爬取也变得越来越普遍,下面就简单介绍一下Python如何实现爬取网页中的表格数据并进行导出到Excel。 第一步:安装相关库 Python提供的第三方库有很多,当然也有很多与网络爬虫有关的库,例如requests、beautifulsoup4、pandas和openpyxl等。我们需要使用到的是requests(可以帮助我们获取所需的HTML网页)和pandas(可以帮助我们将数据保为CSV或Excel格式),如果在安装库时遇到问题可以使用pip来安装: pip install requests pip install pandas pip install openpyxl 第二步:获取网页源码 获取网页源码的常用方法是使用requests库,例如我们可以使用以下代码获取百度首页的HTML源码: import requests url = 'https://www.baidu.com/' response = requests.get(url) html = response.text 第三步:使用beautifulsoup4库获取表格元素 在获取了网页源码之后,我们需要使用beautifulsoup4库来解析HTML,从而提取出表格元素并进行处理。假设我们想要获取表格元素的所有内容,可以使用以下代码: from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'html.parser') table = soup.find('table', attrs={'class': 'table_class_name'}) 这里解释一下代码中的参数,html.parser参数是HTML解析器,'table_class_name'是我们在HTML源码中查找表格元素时要搜索的表格类。 第四步:将数据保Excel文件 我们现在已经获得了网页中的表格元素,接下来需要将这些数据保Excel格式的文件,我们可以使用pandas库来完这个任务。假设我们要将数据保Excel格式的文件,并且我们需要将表头和行储在独立的列中: import pandas as pd df = pd.read_html(str(table))[0] df.to_excel(r'表格数据.xlsx', index=False, header=[ '表头A', '表头B', '表头C']) 这是一个简单的例子,我们可以通过pandas灵活设置DataFrame来实现更多的需求。 总结 Python代码爬取网页表格数据Excel非常方便,在前面的例子中,我们可以使用requests库获取网页源码,使用beautifulsoup4库获取表格元素,使用pandas库将数据保Excel格式的文件,从而实现数据爬取的功能,如果涉及到页面分页或者反爬虫策略,需要按照实际情况进行相应的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值