爬虫之后写入excel文件中
源码分享:
import random
import re
import time
import urllib.request
import xlwt.Workbook
def chengyu(url):
try:
pcres=urllib.request.urlopen(url)
pcres=pcres.read().decode('gbk')
return pcres
#异常处理
except urllib.error.HTTPError as reason:
print(reason)
if __name__ == '__main__':
zimu=["B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
#遍历字母
for zm in zimu:
#遍历数字
rundetail_excel=xlwt.Workbook()
for num in range(1,50):
print(zm+str(num))
url="http://xxx.com/list/"+zm+"_"+str(num)+".html"
res=chengyu(url)
cyall=re.findall(r'<li><a href="/cy(\d+)/(\d+).html">(.+?)</a></li>',str(res))
sheetname=zm+str(num)
worksheet=rundetail_excel.add_sheet(sheetname,cell_overwrite_ok=True)
worksheet.write(0,0,"idiom_name")
worksheet.write(0,1,"idiom_word1")
worksheet.write(0,2,"idiom_word2")
worksheet.write(0,3,"idiom_word3")
worksheet.write(0,4,"idiom_word4")
worksheet.write(0,5,"idiom_lack")
worksheet.write(0,6,"idiom_explan")
#遍历每个成语
for cylen in range(len(cyall)):
print(cyall[cylen])
time.sleep(1)
if len(cyall[cylen][2])==4:
cypage=cyall[cylen][0]
cynum=cyall[cylen][1]
cyname=cyall[cylen][2]
print(cyname)
worksheet.write(cylen+1,0,cyname)
if cyname=="白头如新":
pass
else:
jieshiurl="http://xxx.com/cy"+str(cypage)+"/"+str(cynum)+".html"
jieres=chengyu(jieshiurl)
jieinfo=re.findall('释义</td>\n<td>(.*)</td>',str(jieres))
jieinfo=str(jieinfo[0])
worksheet.write(cylen+1,6,jieinfo)
worksheet.write(cylen+1,1,cyname[0])
worksheet.write(cylen+1,2,cyname[1])
worksheet.write(cylen+1,3,cyname[2])
worksheet.write(cylen+1,4,cyname[3])
randlack=[cyname[0],cyname[1],cyname[2],cyname[3]]
lackone=random.choice(randlack)
worksheet.write(cylen+1,5,lackone)
rundetail_excel.save(zm+".xlsx")
新手学python关注不错