【问题标题】:How can I convert list of crawled data to excel column?如何将抓取的数据列表转换为 excel 列?
【发布时间】:2019-11-21 01:46:42
【问题描述】:
import openpyxl
xl_file = openpyxl.Workbook()
xl_sheet =xl_file.active

from urllib.request import urlopen
from bs4 import BeautifulSoup

stockItem = '028300'

url = 'http://finance.naver.com/item/sise_day.nhn?code='+ stockItem
html = urlopen(url) 
source = BeautifulSoup(html.read(), "html.parser")

maxPage=source.find_all("table",align="center")
mp = maxPage[0].find_all("td",class_="pgRR")
mpNum = int(mp[0].a.get('href')[-3:])

for page in range(1, 10):
   print (str(page) )
   url = 'http://finance.naver.com/item/sise_day.nhn?code=' + stockItem +'&page='+ str(page)
   html = urlopen(url)
   source = BeautifulSoup(html.read(), "html.parser")
   srlists=source.find_all("tr")
   isCheckNone = None

   if((page % 1) == 0):
      time.sleep(0)

   for i in range(1,len(srlists)-1):
      if(srlists[i].span != isCheckNone):

          srlists[i].td.text
          data1 = srlists[i].find_all("td",align="center")
          data2 = srlists[i].find_all("td",class_="num") 
          print(srlists[i].find_all("td",align="center")[0].text, srlists[i].find_all("td",class_="num")[0].text )

          for item in data1:
             xl_sheet.append([item.get_text()])

这就是我从网站抓取股票数据所做的。 我已经成功爬取了股票的数据。 但是,我无法将数据保存到 excel 文件中。 我试过了,但它只显示没有价格数据的日期数据。 如何将结果转换为 excel 文件?

【问题讨论】:

    标签: python html excel web-crawler


    【解决方案1】:

    你错过了两件事, 1)导入包错误 2)没有在包含价格的excel中附加data2

    这是最终代码,它将提供您想要的输出。只需将您的文件夹位置用于保存 excel 文件即可。

    import time
    from openpyxl import Workbook  #
    xl_file = Workbook()
    xl_sheet =xl_file.active
    
    from urllib.request import urlopen
    from bs4 import BeautifulSoup
    i = 0
    stockItem = '028300'
    
    url = 'http://finance.naver.com/item/sise_day.nhn?code='+ stockItem
    html = urlopen(url) 
    source = BeautifulSoup(html.read(), "html.parser")
    
    maxPage=source.find_all("table",align="center")
    mp = maxPage[0].find_all("td",class_="pgRR")
    mpNum = int(mp[0].a.get('href')[-3:])
    
    for page in range(1, 10):
       print (str(page) )
       url = 'http://finance.naver.com/item/sise_day.nhn?code=' + stockItem +'&page='+ str(page)
       html = urlopen(url)
       source = BeautifulSoup(html.read(), "html.parser")
       srlists=source.find_all("tr")
       isCheckNone = None
    
       if((page % 1) == 0):
          time.sleep(0)
    
       for i in range(1,len(srlists)-1):
          if(srlists[i].span != isCheckNone):
    
              srlists[i].td.text
              data1 = srlists[i].find_all("td",align="center")
              data2 = srlists[i].find_all("td",class_="num") 
              #print(srlists[i].find_all("td",align="center")[0].text, srlists[i].find_all("td",class_="num")[0].text )
    
              for item1,item2 in zip(data1,data2):
                  xl_sheet.append([item.get_text(),item2.get_text()])
    
    
    print(xl_sheet)
    xl_file.save(r'C:\Users\Asus\Desktop\vi.xlsx')
    

    建议:你可以使用 Yahoofinance 的 Python 包轻松下载股票数据。 你可以点击这个链接>>https://pypi.org/project/yfinance/

    【讨论】:

    • 非常感谢您帮助我。我试过雅虎财经,但它没有显示我想看到的最新数据。 :(
    • 很高兴能帮上忙。
    猜你喜欢
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 2020-07-21
    • 2013-01-03
    • 2022-01-18
    • 1970-01-01
    • 2019-11-16
    • 2013-02-14
    相关资源
    最近更新 更多