Python练习02--xlwt操控excel文件

正在学习Python如何读写excel文件,用到了两个函数,xlwt和xlrd,总算有一些进展。

from xlwt import *
w = Workbook() #w必须是大写,此步骤创建了一个工作簿。
ws = w.add_sheet('xlwt was here') 此步骤创建了一个名字是 xlwt was here的工作表。
ws.write(0,0,'foot') # 在第1行1列的单元格(cell)中,输入foot。注意,首行首列都是从0开始的。
w.save('mini.xls')

上面的代码能够运行成功,结果就是该py文件同目录下产生一个mini.xls的文件。然后,打开该文件第1行第1列里面有foot这个单词。

第二阶段,我在原有的代码上进行了升级练习。最能能实现

将该贴吧中的图片链接保存到我创建的excel文件当中。

代码如下:

import requests
from xlwt import *
from bs4 import BeautifulSoupurl='http://tieba.baidu.com/p/3990192462'

w=Workbook()  #创建一个工作簿
ws=w.add_sheet('lianjie') #在创建好的工作簿中创建一个名叫lianjie的sheet1
style=easyxf('font:bold 1') #改变单元格样式,加粗为例。

wb_data=requests.get(url) #开始解析网页
soup=BeautifulSoup(wb_data.text,'lxml')
#获取这个帖子下,正文中图片链接。
links=soup.select('img.BDE_Image')
x=0   #为了控制每次for循环写入的数据都能按照顺序排到下一列。这里加了一个参数。
for link in links:
    clink=link.get('src')
    ws.write(x,0,clink,style) #x代表行,0代表列。整个语句就是一直在第1列,然后将下载的链接填写到一行又一行的。
    x=x+1
    print(clink)

w.save('mini2.xls')

运行结果如图:(就是我想要的效果,太棒了!)

运行结果

第三阶段,再次在原有基础上做了一下升级的练习。

实现了把4页的贴吧帖子链接,全部保存到本地excel文件中。

代码如下,比之前的要复杂一些。

import requests
from xlwt import *
from bs4 import BeautifulSoup
url='http://tieba.baidu.com/p/3990192462?pn=1' #这是起始页,一共4页。
w=Workbook()  #创建一个工作簿
ws=w.add_sheet('lianjie') #在创建好的工作簿中创建一个名叫lianjie的sheet1
style=easyxf('font:bold 1') #改变单元格样式,加粗为例。
all_links=[]
#函数1:得到某一页的图片链接,储存在all_links 当中。
def get_onepage_links(url):
    wb_data = requests.get(url)
    soup = BeautifulSoup(wb_data.text, 'lxml')
    links = soup.select('img.BDE_Image')
    for link in links:
        clink = link.get('src')
        all_links.append(clink)
        print('done')
        return all_links
# 函数2: 得到整个帖子的页面链接。
def get_allpage_links(start,end=5):  #得到整个帖子的页面链接。
    for one in range(1,5): 
         url2='http://tieba.baidu.com/p/3990192462?pn={}'.format(one)
         get_onepage_links(url2)
    return all_links
all_links2=get_allpage_links(1,5) #直接遍历函数不行,只能转换一下。
y=0
for x in all_links2:
    ws.write(y,0,x) #r,w,value ,开始写入数据
    y=y+1
    w.save('all-links.xls')  #保存文件
print(all_links2)

最后,执行程序的结果是,很让我满意,成功实现了目标。

运行结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容