正在学习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)
最后,执行程序的结果是,很让我满意,成功实现了目标。
运行结果