簡體   English   中英

如何將爬取數據列表轉換為 excel 列?

[英]How can I convert list of crawled data to excel column?

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 文件?

您錯過了兩件事,1) 導入包時出錯 2) excel 中沒有包含價格的 append 數據2

這是最終代碼,它將提供您想要的 output。 只需將您的文件夾位置用於保存 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 package for python 輕松下載股票數據。 你可以點擊這個鏈接>> https://pypi.org/project/yfinance/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM