python 爬取ultraman及数据保存

爬取

import requests
from bs4 import BeautifulSoup
import bs4
import os
import xlwt
import csv
import codecs

def getHTMLtext(url):
    try:
        r = requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return 'getHTMLtext错误'

def fillUltramanList(ulist,html):
    soup = BeautifulSoup(html,'html.parser')
    for li in soup.body('ul')[1]('li'):
        if isinstance(li,bs4.element.Tag):
            spans = li.find_all('span')
            ulist.append([spans[0].string,spans[1].string,spans[2].string,spans[3].string])

def printUnivList(ulist,num):
    for i in range(41):
        u = ulist[i]
        print(i+1,u[0],u[1],u[2],u[3])
        
def main():
    global uinfo  #变为全局变量
    uinfo = []
    url = 'http://www.4399dmw.com/atm/legend/'
    html = getHTMLtext(url)
    fillUltramanList(uinfo,html)
    printUnivList(uinfo,70)
    
    
main()

数据保存

##保存为excel格式------------------------------------------------------------------------------
def data_write(file_path, datas):
    f = xlwt.Workbook()  #创建工作簿
    sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) #创建sheet
    
    #将数据写入第 i 行,第 j 列
    i = 0
    for data in datas:
        for j in range(len(data)):
            sheet1.write(i,j,data[j])
        i = i + 1
        
    f.save(file_path) #保存文件
    

data_write('C://Users//胡银洪//Desktop//picture//lili.xls', uinfo)  #扩展名为‘xls’


#保存为txt格式------------------------------------------------------------------------------------------
def text_save(filename, data):#filename为写入txt文件的路径,data为要写入数据列表.
    file = open(filename,'a')
    for i in range(len(data)):
        s = str(data[i]).replace('[','').replace(']','')#去除[],这两行按数据不同,可以选择
        num = str(i+1)
        s = num+s.replace("'",'').replace(',','')+'\n'   #去除单引号,逗号,每行末尾追加换行符
        file.write(s)
    file.close()
    print("保存文件成功")

text_save('C://Users//胡银洪//Desktop//picture//ultrman.txt', uinfo)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值